From a9789fdc3801183f4cdbc48d9cadb3f5dbff37af Mon Sep 17 00:00:00 2001 From: Benedikt Magnus <magnus@magnuscraft.de> Date: Sun, 14 Nov 2021 20:47:10 +0100 Subject: [PATCH] "runAssignment" now correctly receives all members in assignment phase. --- scripts/wichtelbot/database/database.ts | 60 +++++++++---------- .../wichtelbot/endpoint/definitions/state.ts | 2 +- .../message/modules/assignmentModule.ts | 3 +- .../message/modules/moderationModule.ts | 2 +- 4 files changed, 34 insertions(+), 33 deletions(-) diff --git a/scripts/wichtelbot/database/database.ts b/scripts/wichtelbot/database/database.ts index 33167c3..15a0bfb 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 7f327b7..8bf10af 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 2c67d7d..e1d7b61 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 63012c1..a0a6300 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) { -- GitLab