feat(backend): ClassRepository & gerelateerde repo's aangemaakt

ClassRepository, ClassJoinRequestRepository en TeacherInvitationRepository aangemaakt.
This commit is contained in:
Gerald Schmittinger 2025-02-25 23:18:04 +01:00
parent c527bae7fc
commit bd93e5fae3
4 changed files with 46 additions and 0 deletions

View file

@ -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<ClassJoinRequest> {
public findAllRequestsBy(requester: Student): Promise<ClassJoinRequest[]> {
return this.findAll({where: {requester: requester}});
}
public findAllOpenRequestsTo(clazz: Class): Promise<ClassJoinRequest[]> {
return this.findAll({where: {class: clazz}});
}
public deleteBy(requester: Student, clazz: Class): Promise<void> {
return this.deleteWhere({requester: requester, class: clazz});
}
}

View file

@ -0,0 +1,11 @@
import {DwengoEntityRepository} from "../dwengo-entity-repository";
import {Class} from "../../entities/classes/class.entity";
export class ClassRepository extends DwengoEntityRepository<Class> {
public findById(id: string): Promise<Class | null> {
return this.findOne({classId: id});
}
public deleteById(id: string): Promise<void> {
return this.deleteWhere({classId: id});
}
}

View file

@ -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<TeacherInvitation> {
public findAllInvitationsForClass(clazz: Class): Promise<TeacherInvitation[]> {
return this.findAll({where: {class: clazz}})
}
public findAllInvitationsBy(sender: Teacher): Promise<TeacherInvitation[]> {
return this.findAll({where: {sender: sender}})
}
public findAllInvitationsFor(receiver: Teacher): Promise<TeacherInvitation[]> {
return this.findAll({where: {receiver: receiver}})
}
public deleteBy(clazz: Class, sender: Teacher, receiver: Teacher): Promise<void> {
return this.deleteWhere({sender: sender, receiver: receiver, class: clazz});
}
}