From bd93e5fae378fbf036d91a20710ea824f6777253 Mon Sep 17 00:00:00 2001 From: Gerald Schmittinger Date: Tue, 25 Feb 2025 23:18:04 +0100 Subject: [PATCH] feat(backend): ClassRepository & gerelateerde repo's aangemaakt ClassRepository, ClassJoinRequestRepository en TeacherInvitationRepository aangemaakt. --- .../classes/class-join-request-repository.ts | 16 ++++++++++++++++ backend/src/data/classes/class-repository.ts | 11 +++++++++++ .../classes/teacher-invitation-repository.ts | 19 +++++++++++++++++++ ...entity.ts => teacher-invitation.entity.ts} | 0 4 files changed, 46 insertions(+) create mode 100644 backend/src/data/classes/class-join-request-repository.ts create mode 100644 backend/src/data/classes/class-repository.ts create mode 100644 backend/src/data/classes/teacher-invitation-repository.ts rename backend/src/entities/classes/{class-invitation.entity.ts => teacher-invitation.entity.ts} (100%) diff --git a/backend/src/data/classes/class-join-request-repository.ts b/backend/src/data/classes/class-join-request-repository.ts new file mode 100644 index 00000000..268bf5bc --- /dev/null +++ b/backend/src/data/classes/class-join-request-repository.ts @@ -0,0 +1,16 @@ +import {DwengoEntityRepository} from "../dwengo-entity-repository"; +import {Class} from "../../entities/classes/class.entity"; +import {ClassJoinRequest} from "../../entities/classes/class-join-request.entity"; +import {Student} from "../../entities/users/student.entity"; + +export class ClassJoinRequestRepository extends DwengoEntityRepository { + public findAllRequestsBy(requester: Student): Promise { + return this.findAll({where: {requester: requester}}); + } + public findAllOpenRequestsTo(clazz: Class): Promise { + return this.findAll({where: {class: clazz}}); + } + public deleteBy(requester: Student, clazz: Class): Promise { + return this.deleteWhere({requester: requester, class: clazz}); + } +} diff --git a/backend/src/data/classes/class-repository.ts b/backend/src/data/classes/class-repository.ts new file mode 100644 index 00000000..3b0f6923 --- /dev/null +++ b/backend/src/data/classes/class-repository.ts @@ -0,0 +1,11 @@ +import {DwengoEntityRepository} from "../dwengo-entity-repository"; +import {Class} from "../../entities/classes/class.entity"; + +export class ClassRepository extends DwengoEntityRepository { + public findById(id: string): Promise { + return this.findOne({classId: id}); + } + public deleteById(id: string): Promise { + return this.deleteWhere({classId: id}); + } +} diff --git a/backend/src/data/classes/teacher-invitation-repository.ts b/backend/src/data/classes/teacher-invitation-repository.ts new file mode 100644 index 00000000..bdd98f43 --- /dev/null +++ b/backend/src/data/classes/teacher-invitation-repository.ts @@ -0,0 +1,19 @@ +import {DwengoEntityRepository} from "../dwengo-entity-repository"; +import {Class} from "../../entities/classes/class.entity"; +import {TeacherInvitation} from "../../entities/classes/teacher-invitation.entity"; +import {Teacher} from "../../entities/users/teacher.entity"; + +export class TeacherInvitationRepository extends DwengoEntityRepository { + public findAllInvitationsForClass(clazz: Class): Promise { + return this.findAll({where: {class: clazz}}) + } + public findAllInvitationsBy(sender: Teacher): Promise { + return this.findAll({where: {sender: sender}}) + } + public findAllInvitationsFor(receiver: Teacher): Promise { + return this.findAll({where: {receiver: receiver}}) + } + public deleteBy(clazz: Class, sender: Teacher, receiver: Teacher): Promise { + return this.deleteWhere({sender: sender, receiver: receiver, class: clazz}); + } +} diff --git a/backend/src/entities/classes/class-invitation.entity.ts b/backend/src/entities/classes/teacher-invitation.entity.ts similarity index 100% rename from backend/src/entities/classes/class-invitation.entity.ts rename to backend/src/entities/classes/teacher-invitation.entity.ts