diff --git a/scripts/wichtelbot/database/database.ts b/scripts/wichtelbot/database/database.ts index 33167c32e2178940b46f6da89ac333568fc3e594..15a0bfb4c09c04ed337d30b35e08ddbcce0d0b77 100644 --- a/scripts/wichtelbot/database/database.ts +++ b/scripts/wichtelbot/database/database.ts @@ -391,6 +391,36 @@ export default class Database return member; } + public getMembersWithState (state: State): Member[] + { + const statement = this.mainDatabase.prepare( + `SELECT + contact.*, information.* + FROM + contact + LEFT JOIN + information + ON information.contactId = contact.id + WHERE + contact.state = ?` + ); + + statement.expand(true); // Expands the result to have one sub-object for each table. + + const resultData = statement.all(state) as { contact: ContactData, information: InformationData }[]; + + const members: Member[] = []; + + for (const result of resultData) + { + const member = new Member(result.contact, result.information); + + members.push(member); + } + + return members; + } + /** * Updates an existing member (contact and information data) in the database. \ * NOTE: The contact and the information objects' lastUpdateTime will be updated. @@ -477,36 +507,6 @@ export default class Database return this.getCount(statement, State.Waiting); } - public getWaitingMembers (): Member[] - { - const statement = this.mainDatabase.prepare( - `SELECT - contact.*, information.* - FROM - contact - LEFT JOIN - information - ON information.contactId = contact.id - WHERE - contact.state = ?` - ); - - statement.expand(true); // Expands the result to have one sub-object for each table. - - const resultData = statement.all(State.Waiting) as { contact: ContactData, information: InformationData }[]; - - const members: Member[] = []; - - for (const result of resultData) - { - const member = new Member(result.contact, result.information); - - members.push(member); - } - - return members; - } - public getUserExclusions (): Exclusion[] { const statement = this.mainDatabase.prepare( diff --git a/scripts/wichtelbot/endpoint/definitions/state.ts b/scripts/wichtelbot/endpoint/definitions/state.ts index 7f327b725314d4ab435f594a90b1b451868787f4..8bf10af4ae75f9a1b9502fb6e34e5cf1a2a6604a 100644 --- a/scripts/wichtelbot/endpoint/definitions/state.ts +++ b/scripts/wichtelbot/endpoint/definitions/state.ts @@ -21,7 +21,7 @@ enum State Waiting = 'waiting', // TODO: Rename to "registered". ConfirmDeregistration = 'confirmDeregistration', /** While assignment is running; cannot change information. */ - Assignment = 'assignment', // TODO: Rename to "waiting" after "waiting" has been renamed to "registered". + Assignment = 'assignment', // As wichtel: MessageToGiftGiver = 'messageToGiftGiver', MessageToGiftTaker = 'messageToGiftTaker', diff --git a/scripts/wichtelbot/message/modules/assignmentModule.ts b/scripts/wichtelbot/message/modules/assignmentModule.ts index 2c67d7d518d8b2929879a6599fb7b2897d1a9c27..e1d7b61fc192f062871eb5c29762db6644faade0 100644 --- a/scripts/wichtelbot/message/modules/assignmentModule.ts +++ b/scripts/wichtelbot/message/modules/assignmentModule.ts @@ -4,6 +4,7 @@ import { ExclusionReason } from '../../types/exclusionReason'; import GiftType from '../../types/giftType'; import Member from '../../classes/member'; import { RelationshipData } from '../../classes/relationship'; +import { State } from '../../endpoint/definitions'; interface Candidate { @@ -42,7 +43,7 @@ export class AssignmentModule */ public runAssignment (): boolean // TODO: Return the reason for failure. { - const members = this.database.getWaitingMembers(); + const members = this.database.getMembersWithState(State.Assignment); if (members.length === 0) { diff --git a/scripts/wichtelbot/message/modules/moderationModule.ts b/scripts/wichtelbot/message/modules/moderationModule.ts index 63012c1577f14b7f291bf8653eeced352957e8c9..a0a6300c2cdb3802935f47738dcca768f849f475 100644 --- a/scripts/wichtelbot/message/modules/moderationModule.ts +++ b/scripts/wichtelbot/message/modules/moderationModule.ts @@ -96,7 +96,7 @@ export class ModerationModule */ public async endRegistration (message: Message): Promise<void> { - const members = this.database.getWaitingMembers(); + const members = this.database.getMembersWithState(State.Waiting); for (const member of members) {