From 35a92894787f48146a097c060a2b5315872d0b2c Mon Sep 17 00:00:00 2001 From: Benedikt Magnus <magnus@magnuscraft.de> Date: Mon, 8 Nov 2021 12:42:37 +0100 Subject: [PATCH] Exclusion class (handling) --- scripts/wichtelbot/classes/exclusion.ts | 17 +++++++++++++++++ scripts/wichtelbot/database.ts | 21 +++++++++++++++++++++ scripts/wichtelbot/types/exclusionReason.ts | 5 +++++ 3 files changed, 43 insertions(+) create mode 100644 scripts/wichtelbot/classes/exclusion.ts create mode 100644 scripts/wichtelbot/types/exclusionReason.ts diff --git a/scripts/wichtelbot/classes/exclusion.ts b/scripts/wichtelbot/classes/exclusion.ts new file mode 100644 index 0000000..519287a --- /dev/null +++ b/scripts/wichtelbot/classes/exclusion.ts @@ -0,0 +1,17 @@ +import { ExclusionReason } from "../types/exclusionReason"; + +export class Exclusion +{ + public wichtelEvent: string; + public giverId: string; + public takerId: string; + public reason: ExclusionReason; + + constructor (exclusion: Exclusion) + { + this.wichtelEvent = exclusion.wichtelEvent; + this.giverId = exclusion.giverId; + this.takerId = exclusion.takerId; + this.reason = exclusion.reason; + } +} diff --git a/scripts/wichtelbot/database.ts b/scripts/wichtelbot/database.ts index 8af8cc7..a1a36af 100644 --- a/scripts/wichtelbot/database.ts +++ b/scripts/wichtelbot/database.ts @@ -2,6 +2,7 @@ import * as fs from 'fs'; import Contact, { ContactCoreData, ContactData } from './classes/contact'; import ContactType from './types/contactType'; +import { Exclusion } from './classes/exclusion'; import { InformationData } from './classes/information'; import Member from './classes/member'; import Utils from '../utility/utils'; @@ -431,6 +432,26 @@ export default class Database return contactCoreData; } } + + public getUserExclusions (): Exclusion[] + { + const statement = this.mainDatabase.prepare( + 'SELECT * FROM exclusion' + ); + + const rawExclusions = statement.all() as Exclusion[]; + + const exclusions: Exclusion[] = []; + + for (const rawExclusion of rawExclusions) + { + const exclusion = new Exclusion(rawExclusion); + + exclusions.push(exclusion); + } + + return exclusions; + } } /* diff --git a/scripts/wichtelbot/types/exclusionReason.ts b/scripts/wichtelbot/types/exclusionReason.ts new file mode 100644 index 0000000..331520c --- /dev/null +++ b/scripts/wichtelbot/types/exclusionReason.ts @@ -0,0 +1,5 @@ +export enum ExclusionReason +{ + WichtelFromThePast = 'wichtelFromThePast', + Wish = 'wish', +} -- GitLab