fix(backend): Formatting + .env.development.example
npm run format uitgevoerd, .env.development.example toegevoegd.
This commit is contained in:
parent
4e883a1a18
commit
48c8ce7c57
36 changed files with 499 additions and 331 deletions
|
@ -1,15 +1,18 @@
|
|||
import {DwengoEntityRepository} from "../dwengo-entity-repository";
|
||||
import {Assignment} from "../../entities/assignments/assignment.entity";
|
||||
import {Class} from "../../entities/classes/class.entity";
|
||||
import { DwengoEntityRepository } from '../dwengo-entity-repository';
|
||||
import { Assignment } from '../../entities/assignments/assignment.entity';
|
||||
import { Class } from '../../entities/classes/class.entity';
|
||||
|
||||
export class AssignmentRepository extends DwengoEntityRepository<Assignment> {
|
||||
public findByClassAndId(within: Class, id: number): Promise<Assignment | null> {
|
||||
return this.findOne({within: within, id: id});
|
||||
public findByClassAndId(
|
||||
within: Class,
|
||||
id: number
|
||||
): Promise<Assignment | null> {
|
||||
return this.findOne({ within: within, id: id });
|
||||
}
|
||||
public findAllAssignmentsInClass(within: Class): Promise<Assignment[]> {
|
||||
return this.findAll({where: {within: within}});
|
||||
return this.findAll({ where: { within: within } });
|
||||
}
|
||||
public deleteByClassAndId(within: Class, id: number): Promise<void> {
|
||||
return this.deleteWhere({within: within, id: id});
|
||||
return this.deleteWhere({ within: within, id: id });
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,15 +1,29 @@
|
|||
import {DwengoEntityRepository} from "../dwengo-entity-repository";
|
||||
import {Group} from "../../entities/assignments/group.entity";
|
||||
import {Assignment} from "../../entities/assignments/assignment.entity";
|
||||
import { DwengoEntityRepository } from '../dwengo-entity-repository';
|
||||
import { Group } from '../../entities/assignments/group.entity';
|
||||
import { Assignment } from '../../entities/assignments/assignment.entity';
|
||||
|
||||
export class GroupRepository extends DwengoEntityRepository<Group> {
|
||||
public findByAssignmentAndGroupNumber(assignment: Assignment, groupNumber: number): Promise<Group | null> {
|
||||
return this.findOne({assignment: assignment, groupNumber: groupNumber});
|
||||
public findByAssignmentAndGroupNumber(
|
||||
assignment: Assignment,
|
||||
groupNumber: number
|
||||
): Promise<Group | null> {
|
||||
return this.findOne({
|
||||
assignment: assignment,
|
||||
groupNumber: groupNumber,
|
||||
});
|
||||
}
|
||||
public findAllGroupsForAssignment(assignment: Assignment): Promise<Group[]> {
|
||||
return this.findAll({where: {assignment: assignment}});
|
||||
public findAllGroupsForAssignment(
|
||||
assignment: Assignment
|
||||
): Promise<Group[]> {
|
||||
return this.findAll({ where: { assignment: assignment } });
|
||||
}
|
||||
public deleteByAssignmentAndGroupNumber(assignment: Assignment, groupNumber: number) {
|
||||
return this.deleteWhere({assignment: assignment, groupNumber: groupNumber});
|
||||
public deleteByAssignmentAndGroupNumber(
|
||||
assignment: Assignment,
|
||||
groupNumber: number
|
||||
) {
|
||||
return this.deleteWhere({
|
||||
assignment: assignment,
|
||||
groupNumber: groupNumber,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,43 +1,61 @@
|
|||
import {DwengoEntityRepository} from "../dwengo-entity-repository";
|
||||
import {Group} from "../../entities/assignments/group.entity";
|
||||
import {Submission} from "../../entities/assignments/submission.entity";
|
||||
import {LearningObjectIdentifier} from "../../entities/content/learning-object-identifier";
|
||||
import {Student} from "../../entities/users/student.entity";
|
||||
import { DwengoEntityRepository } from '../dwengo-entity-repository';
|
||||
import { Group } from '../../entities/assignments/group.entity';
|
||||
import { Submission } from '../../entities/assignments/submission.entity';
|
||||
import { LearningObjectIdentifier } from '../../entities/content/learning-object-identifier';
|
||||
import { Student } from '../../entities/users/student.entity';
|
||||
|
||||
export class SubmissionRepository extends DwengoEntityRepository<Submission> {
|
||||
public findSubmissionByLearningObjectAndSubmissionNumber(loId: LearningObjectIdentifier, submissionNumber: number): Promise<Submission | null> {
|
||||
public findSubmissionByLearningObjectAndSubmissionNumber(
|
||||
loId: LearningObjectIdentifier,
|
||||
submissionNumber: number
|
||||
): Promise<Submission | null> {
|
||||
return this.findOne({
|
||||
learningObjectHruid: loId.hruid,
|
||||
learningObjectLanguage: loId.language,
|
||||
learningObjectVersion: loId.version,
|
||||
submissionNumber: submissionNumber
|
||||
submissionNumber: submissionNumber,
|
||||
});
|
||||
}
|
||||
|
||||
public findMostRecentSubmissionForStudent(loId: LearningObjectIdentifier, submitter: Student): Promise<Submission | null> {
|
||||
return this.findOne({
|
||||
learningObjectHruid: loId.hruid,
|
||||
learningObjectLanguage: loId.language,
|
||||
learningObjectVersion: loId.version,
|
||||
submitter: submitter,
|
||||
}, {orderBy: {submissionNumber: "DESC"}})
|
||||
public findMostRecentSubmissionForStudent(
|
||||
loId: LearningObjectIdentifier,
|
||||
submitter: Student
|
||||
): Promise<Submission | null> {
|
||||
return this.findOne(
|
||||
{
|
||||
learningObjectHruid: loId.hruid,
|
||||
learningObjectLanguage: loId.language,
|
||||
learningObjectVersion: loId.version,
|
||||
submitter: submitter,
|
||||
},
|
||||
{ orderBy: { submissionNumber: 'DESC' } }
|
||||
);
|
||||
}
|
||||
|
||||
public findMostRecentSubmissionForGroup(loId: LearningObjectIdentifier, group: Group): Promise<Submission | null> {
|
||||
return this.findOne({
|
||||
learningObjectHruid: loId.hruid,
|
||||
learningObjectLanguage: loId.language,
|
||||
learningObjectVersion: loId.version,
|
||||
onBehalfOf: group,
|
||||
}, {orderBy: {submissionNumber: "DESC"}})
|
||||
public findMostRecentSubmissionForGroup(
|
||||
loId: LearningObjectIdentifier,
|
||||
group: Group
|
||||
): Promise<Submission | null> {
|
||||
return this.findOne(
|
||||
{
|
||||
learningObjectHruid: loId.hruid,
|
||||
learningObjectLanguage: loId.language,
|
||||
learningObjectVersion: loId.version,
|
||||
onBehalfOf: group,
|
||||
},
|
||||
{ orderBy: { submissionNumber: 'DESC' } }
|
||||
);
|
||||
}
|
||||
|
||||
public deleteSubmissionByLearningObjectAndSubmissionNumber(loId: LearningObjectIdentifier, submissionNumber: number): Promise<void> {
|
||||
public deleteSubmissionByLearningObjectAndSubmissionNumber(
|
||||
loId: LearningObjectIdentifier,
|
||||
submissionNumber: number
|
||||
): Promise<void> {
|
||||
return this.deleteWhere({
|
||||
learningObjectHruid: loId.hruid,
|
||||
learningObjectLanguage: loId.language,
|
||||
learningObjectVersion: loId.version,
|
||||
submissionNumber: submissionNumber
|
||||
})
|
||||
submissionNumber: submissionNumber,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,16 +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";
|
||||
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}});
|
||||
return this.findAll({ where: { requester: requester } });
|
||||
}
|
||||
public findAllOpenRequestsTo(clazz: Class): Promise<ClassJoinRequest[]> {
|
||||
return this.findAll({where: {class: clazz}});
|
||||
return this.findAll({ where: { class: clazz } });
|
||||
}
|
||||
public deleteBy(requester: Student, clazz: Class): Promise<void> {
|
||||
return this.deleteWhere({requester: requester, class: clazz});
|
||||
return this.deleteWhere({ requester: requester, class: clazz });
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import {DwengoEntityRepository} from "../dwengo-entity-repository";
|
||||
import {Class} from "../../entities/classes/class.entity";
|
||||
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});
|
||||
return this.findOne({ classId: id });
|
||||
}
|
||||
public deleteById(id: string): Promise<void> {
|
||||
return this.deleteWhere({classId: id});
|
||||
return this.deleteWhere({ classId: id });
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,19 +1,31 @@
|
|||
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";
|
||||
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 findAllInvitationsForClass(
|
||||
clazz: Class
|
||||
): Promise<TeacherInvitation[]> {
|
||||
return this.findAll({ where: { class: clazz } });
|
||||
}
|
||||
public findAllInvitationsBy(sender: Teacher): Promise<TeacherInvitation[]> {
|
||||
return this.findAll({where: {sender: sender}})
|
||||
return this.findAll({ where: { sender: sender } });
|
||||
}
|
||||
public findAllInvitationsFor(receiver: Teacher): Promise<TeacherInvitation[]> {
|
||||
return this.findAll({where: {receiver: receiver}})
|
||||
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});
|
||||
public deleteBy(
|
||||
clazz: Class,
|
||||
sender: Teacher,
|
||||
receiver: Teacher
|
||||
): Promise<void> {
|
||||
return this.deleteWhere({
|
||||
sender: sender,
|
||||
receiver: receiver,
|
||||
class: clazz,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,16 @@
|
|||
import {DwengoEntityRepository} from "../dwengo-entity-repository";
|
||||
import {Attachment} from "../../entities/content/attachment.entity";
|
||||
import {LearningObject} from "../../entities/content/learning-object.entity";
|
||||
import { DwengoEntityRepository } from '../dwengo-entity-repository';
|
||||
import { Attachment } from '../../entities/content/attachment.entity';
|
||||
import { LearningObject } from '../../entities/content/learning-object.entity';
|
||||
|
||||
export class AttachmentRepository extends DwengoEntityRepository<Attachment> {
|
||||
public findByLearningObjectAndNumber(learningObject: LearningObject, sequenceNumber: number) {
|
||||
return this.findOne({learningObject: learningObject, sequenceNumber: sequenceNumber});
|
||||
public findByLearningObjectAndNumber(
|
||||
learningObject: LearningObject,
|
||||
sequenceNumber: number
|
||||
) {
|
||||
return this.findOne({
|
||||
learningObject: learningObject,
|
||||
sequenceNumber: sequenceNumber,
|
||||
});
|
||||
}
|
||||
// This repository is read-only for now since creating own learning object is an extension feature.
|
||||
}
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
import {DwengoEntityRepository} from "../dwengo-entity-repository";
|
||||
import {LearningObject} from "../../entities/content/learning-object.entity";
|
||||
import {LearningObjectIdentifier} from "../../entities/content/learning-object-identifier";
|
||||
import { DwengoEntityRepository } from '../dwengo-entity-repository';
|
||||
import { LearningObject } from '../../entities/content/learning-object.entity';
|
||||
import { LearningObjectIdentifier } from '../../entities/content/learning-object-identifier';
|
||||
|
||||
export class LearningObjectRepository extends DwengoEntityRepository<LearningObject> {
|
||||
public findByIdentifier(identifier: LearningObjectIdentifier): Promise<LearningObject | null> {
|
||||
public findByIdentifier(
|
||||
identifier: LearningObjectIdentifier
|
||||
): Promise<LearningObject | null> {
|
||||
return this.findOne({
|
||||
hruid: identifier.hruid,
|
||||
language: identifier.language,
|
||||
version: identifier.version
|
||||
version: identifier.version,
|
||||
});
|
||||
}
|
||||
// This repository is read-only for now since creating own learning object is an extension feature.
|
||||
|
|
|
@ -1,10 +1,13 @@
|
|||
import {DwengoEntityRepository} from "../dwengo-entity-repository";
|
||||
import {LearningPath} from "../../entities/content/learning-path.entity";
|
||||
import {Language} from "../../entities/content/language";
|
||||
import { DwengoEntityRepository } from '../dwengo-entity-repository';
|
||||
import { LearningPath } from '../../entities/content/learning-path.entity';
|
||||
import { Language } from '../../entities/content/language';
|
||||
|
||||
export class LearningPathRepository extends DwengoEntityRepository<LearningPath> {
|
||||
public findByHruidAndLanguage(hruid: string, language: Language): Promise<LearningPath | null> {
|
||||
return this.findOne({hruid: hruid, language: language});
|
||||
public findByHruidAndLanguage(
|
||||
hruid: string,
|
||||
language: Language
|
||||
): Promise<LearningPath | null> {
|
||||
return this.findOne({ hruid: hruid, language: language });
|
||||
}
|
||||
// This repository is read-only for now since creating own learning object is an extension feature.
|
||||
}
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
import {EntityRepository, FilterQuery} from "@mikro-orm/core";
|
||||
import { EntityRepository, FilterQuery } from '@mikro-orm/core';
|
||||
|
||||
export abstract class DwengoEntityRepository<T extends object> extends EntityRepository<T> {
|
||||
export abstract class DwengoEntityRepository<
|
||||
T extends object,
|
||||
> extends EntityRepository<T> {
|
||||
public async save(entity: T) {
|
||||
let em = this.getEntityManager();
|
||||
em.persist(entity);
|
||||
|
|
|
@ -1,10 +1,14 @@
|
|||
import {DwengoEntityRepository} from "../dwengo-entity-repository";
|
||||
import {Answer} from "../../entities/questions/answer.entity";
|
||||
import {Question} from "../../entities/questions/question.entity";
|
||||
import {Teacher} from "../../entities/users/teacher.entity";
|
||||
import { DwengoEntityRepository } from '../dwengo-entity-repository';
|
||||
import { Answer } from '../../entities/questions/answer.entity';
|
||||
import { Question } from '../../entities/questions/question.entity';
|
||||
import { Teacher } from '../../entities/users/teacher.entity';
|
||||
|
||||
export class AnswerRepository extends DwengoEntityRepository<Answer> {
|
||||
public createAnswer(answer: {toQuestion: Question, author: Teacher, content: string}): Promise<Answer> {
|
||||
public createAnswer(answer: {
|
||||
toQuestion: Question;
|
||||
author: Teacher;
|
||||
content: string;
|
||||
}): Promise<Answer> {
|
||||
let answerEntity = new Answer();
|
||||
answerEntity.toQuestion = answer.toQuestion;
|
||||
answerEntity.author = answer.author;
|
||||
|
@ -14,13 +18,16 @@ export class AnswerRepository extends DwengoEntityRepository<Answer> {
|
|||
public findAllAnswersToQuestion(question: Question): Promise<Answer[]> {
|
||||
return this.findAll({
|
||||
where: { toQuestion: question },
|
||||
orderBy: { sequenceNumber: "ASC" }
|
||||
orderBy: { sequenceNumber: 'ASC' },
|
||||
});
|
||||
}
|
||||
public removeAnswerByQuestionAndSequenceNumber(question: Question, sequenceNumber: number): Promise<void> {
|
||||
public removeAnswerByQuestionAndSequenceNumber(
|
||||
question: Question,
|
||||
sequenceNumber: number
|
||||
): Promise<void> {
|
||||
return this.deleteWhere({
|
||||
toQuestion: question,
|
||||
sequenceNumber: sequenceNumber
|
||||
sequenceNumber: sequenceNumber,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,14 @@
|
|||
import {DwengoEntityRepository} from "../dwengo-entity-repository";
|
||||
import {Question} from "../../entities/questions/question.entity";
|
||||
import {LearningObjectIdentifier} from "../../entities/content/learning-object-identifier";
|
||||
import {Student} from "../../entities/users/student.entity";
|
||||
import { DwengoEntityRepository } from '../dwengo-entity-repository';
|
||||
import { Question } from '../../entities/questions/question.entity';
|
||||
import { LearningObjectIdentifier } from '../../entities/content/learning-object-identifier';
|
||||
import { Student } from '../../entities/users/student.entity';
|
||||
|
||||
export class QuestionRepository extends DwengoEntityRepository<Question> {
|
||||
public createQuestion(question: {loId: LearningObjectIdentifier, author: Student, content: string}): Promise<Question> {
|
||||
public createQuestion(question: {
|
||||
loId: LearningObjectIdentifier;
|
||||
author: Student;
|
||||
content: string;
|
||||
}): Promise<Question> {
|
||||
let questionEntity = new Question();
|
||||
questionEntity.learningObjectHruid = question.loId.hruid;
|
||||
questionEntity.learningObjectLanguage = question.loId.language;
|
||||
|
@ -13,24 +17,29 @@ export class QuestionRepository extends DwengoEntityRepository<Question> {
|
|||
questionEntity.content = question.content;
|
||||
return this.insert(questionEntity);
|
||||
}
|
||||
public findAllQuestionsAboutLearningObject(loId: LearningObjectIdentifier): Promise<Question[]> {
|
||||
public findAllQuestionsAboutLearningObject(
|
||||
loId: LearningObjectIdentifier
|
||||
): Promise<Question[]> {
|
||||
return this.findAll({
|
||||
where: {
|
||||
learningObjectHruid: loId.hruid,
|
||||
learningObjectLanguage: loId.language,
|
||||
learningObjectVersion: loId.version
|
||||
learningObjectVersion: loId.version,
|
||||
},
|
||||
orderBy: {
|
||||
sequenceNumber: "ASC"
|
||||
}
|
||||
sequenceNumber: 'ASC',
|
||||
},
|
||||
});
|
||||
}
|
||||
public removeQuestionByLearningObjectAndSequenceNumber(loId: LearningObjectIdentifier, sequenceNumber: number): Promise<void> {
|
||||
public removeQuestionByLearningObjectAndSequenceNumber(
|
||||
loId: LearningObjectIdentifier,
|
||||
sequenceNumber: number
|
||||
): Promise<void> {
|
||||
return this.deleteWhere({
|
||||
learningObjectHruid: loId.hruid,
|
||||
learningObjectLanguage: loId.language,
|
||||
learningObjectVersion: loId.version,
|
||||
sequenceNumber: sequenceNumber
|
||||
})
|
||||
sequenceNumber: sequenceNumber,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,33 +1,38 @@
|
|||
import {AnyEntity, EntityManager, EntityName, EntityRepository} from "@mikro-orm/core";
|
||||
import {forkEntityManager} from "../orm";
|
||||
import {StudentRepository} from "./users/student-repository";
|
||||
import {Student} from "../entities/users/student.entity";
|
||||
import {User} from "../entities/users/user.entity";
|
||||
import {UserRepository} from "./users/user-repository";
|
||||
import {Teacher} from "../entities/users/teacher.entity";
|
||||
import {TeacherRepository} from "./users/teacher-repository";
|
||||
import {Class} from "../entities/classes/class.entity";
|
||||
import {ClassRepository} from "./classes/class-repository";
|
||||
import {ClassJoinRequest} from "../entities/classes/class-join-request.entity";
|
||||
import {ClassJoinRequestRepository} from "./classes/class-join-request-repository";
|
||||
import {TeacherInvitationRepository} from "./classes/teacher-invitation-repository";
|
||||
import {TeacherInvitation} from "../entities/classes/teacher-invitation.entity";
|
||||
import {Assignment} from "../entities/assignments/assignment.entity";
|
||||
import {AssignmentRepository} from "./assignments/assignment-repository";
|
||||
import {GroupRepository} from "./assignments/group-repository";
|
||||
import {Group} from "../entities/assignments/group.entity";
|
||||
import {Submission} from "../entities/assignments/submission.entity";
|
||||
import {SubmissionRepository} from "./assignments/submission-repository";
|
||||
import {Question} from "../entities/questions/question.entity";
|
||||
import {QuestionRepository} from "./questions/question-repository";
|
||||
import {Answer} from "../entities/questions/answer.entity";
|
||||
import {AnswerRepository} from "./questions/answer-repository";
|
||||
import {LearningObject} from "../entities/content/learning-object.entity";
|
||||
import {LearningObjectRepository} from "./content/learning-object-repository";
|
||||
import {LearningPath} from "../entities/content/learning-path.entity";
|
||||
import {LearningPathRepository} from "./content/learning-path-repository";
|
||||
import {AttachmentRepository} from "./content/attachment-repository";
|
||||
import {Attachment} from "../entities/content/attachment.entity";
|
||||
import {
|
||||
AnyEntity,
|
||||
EntityManager,
|
||||
EntityName,
|
||||
EntityRepository,
|
||||
} from '@mikro-orm/core';
|
||||
import { forkEntityManager } from '../orm';
|
||||
import { StudentRepository } from './users/student-repository';
|
||||
import { Student } from '../entities/users/student.entity';
|
||||
import { User } from '../entities/users/user.entity';
|
||||
import { UserRepository } from './users/user-repository';
|
||||
import { Teacher } from '../entities/users/teacher.entity';
|
||||
import { TeacherRepository } from './users/teacher-repository';
|
||||
import { Class } from '../entities/classes/class.entity';
|
||||
import { ClassRepository } from './classes/class-repository';
|
||||
import { ClassJoinRequest } from '../entities/classes/class-join-request.entity';
|
||||
import { ClassJoinRequestRepository } from './classes/class-join-request-repository';
|
||||
import { TeacherInvitationRepository } from './classes/teacher-invitation-repository';
|
||||
import { TeacherInvitation } from '../entities/classes/teacher-invitation.entity';
|
||||
import { Assignment } from '../entities/assignments/assignment.entity';
|
||||
import { AssignmentRepository } from './assignments/assignment-repository';
|
||||
import { GroupRepository } from './assignments/group-repository';
|
||||
import { Group } from '../entities/assignments/group.entity';
|
||||
import { Submission } from '../entities/assignments/submission.entity';
|
||||
import { SubmissionRepository } from './assignments/submission-repository';
|
||||
import { Question } from '../entities/questions/question.entity';
|
||||
import { QuestionRepository } from './questions/question-repository';
|
||||
import { Answer } from '../entities/questions/answer.entity';
|
||||
import { AnswerRepository } from './questions/answer-repository';
|
||||
import { LearningObject } from '../entities/content/learning-object.entity';
|
||||
import { LearningObjectRepository } from './content/learning-object-repository';
|
||||
import { LearningPath } from '../entities/content/learning-path.entity';
|
||||
import { LearningPathRepository } from './content/learning-path-repository';
|
||||
import { AttachmentRepository } from './content/attachment-repository';
|
||||
import { Attachment } from '../entities/content/attachment.entity';
|
||||
|
||||
let entityManager: EntityManager | undefined;
|
||||
|
||||
|
@ -38,7 +43,9 @@ export function transactional<T>(f: () => Promise<T>) {
|
|||
entityManager?.transactional(f);
|
||||
}
|
||||
|
||||
function repositoryGetter<T extends AnyEntity, R extends EntityRepository<T>>(entity: EntityName<T>): () => R {
|
||||
function repositoryGetter<T extends AnyEntity, R extends EntityRepository<T>>(
|
||||
entity: EntityName<T>
|
||||
): () => R {
|
||||
let cachedRepo: R | undefined;
|
||||
return (): R => {
|
||||
if (!cachedRepo) {
|
||||
|
@ -48,29 +55,65 @@ function repositoryGetter<T extends AnyEntity, R extends EntityRepository<T>>(en
|
|||
cachedRepo = entityManager.getRepository(entity) as R;
|
||||
}
|
||||
return cachedRepo;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/* Users */
|
||||
export const getUserRepository = repositoryGetter<User, UserRepository>(User)
|
||||
export const getStudentRepository = repositoryGetter<Student, StudentRepository>(Student);
|
||||
export const getTeacherRepository = repositoryGetter<Teacher, TeacherRepository>(Teacher);
|
||||
export const getUserRepository = repositoryGetter<User, UserRepository>(User);
|
||||
export const getStudentRepository = repositoryGetter<
|
||||
Student,
|
||||
StudentRepository
|
||||
>(Student);
|
||||
export const getTeacherRepository = repositoryGetter<
|
||||
Teacher,
|
||||
TeacherRepository
|
||||
>(Teacher);
|
||||
|
||||
/* Classes */
|
||||
export const getClassRepository = repositoryGetter<Class, ClassRepository>(Class);
|
||||
export const getClassJoinRequestRepository = repositoryGetter<ClassJoinRequest, ClassJoinRequestRepository>(ClassJoinRequest);
|
||||
export const getTeacherInvitationRepository = repositoryGetter<TeacherInvitation, TeacherInvitationRepository>(TeacherInvitationRepository);
|
||||
export const getClassRepository = repositoryGetter<Class, ClassRepository>(
|
||||
Class
|
||||
);
|
||||
export const getClassJoinRequestRepository = repositoryGetter<
|
||||
ClassJoinRequest,
|
||||
ClassJoinRequestRepository
|
||||
>(ClassJoinRequest);
|
||||
export const getTeacherInvitationRepository = repositoryGetter<
|
||||
TeacherInvitation,
|
||||
TeacherInvitationRepository
|
||||
>(TeacherInvitationRepository);
|
||||
|
||||
/* Assignments */
|
||||
export const getAssignmentRepository = repositoryGetter<Assignment, AssignmentRepository>(Assignment);
|
||||
export const getGroupRepository = repositoryGetter<Group, GroupRepository>(Group);
|
||||
export const getSubmissionRepository = repositoryGetter<Submission, SubmissionRepository>(Submission);
|
||||
export const getAssignmentRepository = repositoryGetter<
|
||||
Assignment,
|
||||
AssignmentRepository
|
||||
>(Assignment);
|
||||
export const getGroupRepository = repositoryGetter<Group, GroupRepository>(
|
||||
Group
|
||||
);
|
||||
export const getSubmissionRepository = repositoryGetter<
|
||||
Submission,
|
||||
SubmissionRepository
|
||||
>(Submission);
|
||||
|
||||
/* Questions and answers */
|
||||
export const getQuestionRepository = repositoryGetter<Question, QuestionRepository>(Question);
|
||||
export const getAnswerRepository = repositoryGetter<Answer, AnswerRepository>(Answer);
|
||||
export const getQuestionRepository = repositoryGetter<
|
||||
Question,
|
||||
QuestionRepository
|
||||
>(Question);
|
||||
export const getAnswerRepository = repositoryGetter<Answer, AnswerRepository>(
|
||||
Answer
|
||||
);
|
||||
|
||||
/* Learning content */
|
||||
export const getLearningObjectRepository = repositoryGetter<LearningObject, LearningObjectRepository>(LearningObject);
|
||||
export const getLearningPathRepository = repositoryGetter<LearningPath, LearningPathRepository>(LearningPath);
|
||||
export const getAttachmentRepository = repositoryGetter<Attachment, AttachmentRepository>(Assignment);
|
||||
export const getLearningObjectRepository = repositoryGetter<
|
||||
LearningObject,
|
||||
LearningObjectRepository
|
||||
>(LearningObject);
|
||||
export const getLearningPathRepository = repositoryGetter<
|
||||
LearningPath,
|
||||
LearningPathRepository
|
||||
>(LearningPath);
|
||||
export const getAttachmentRepository = repositoryGetter<
|
||||
Attachment,
|
||||
AttachmentRepository
|
||||
>(Assignment);
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import {DwengoEntityRepository} from "../dwengo-entity-repository";
|
||||
import {Student} from "../../entities/users/student.entity";
|
||||
import { DwengoEntityRepository } from '../dwengo-entity-repository';
|
||||
import { Student } from '../../entities/users/student.entity';
|
||||
|
||||
export class StudentRepository extends DwengoEntityRepository<Student> {
|
||||
public findByUsername(username: string): Promise<Student | null> {
|
||||
return this.findOne({username: username});
|
||||
return this.findOne({ username: username });
|
||||
}
|
||||
public deleteByUsername(username: string): Promise<void> {
|
||||
return this.deleteWhere({username: username});
|
||||
return this.deleteWhere({ username: username });
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import {DwengoEntityRepository} from "../dwengo-entity-repository";
|
||||
import {Teacher} from "../../entities/users/teacher.entity";
|
||||
import { DwengoEntityRepository } from '../dwengo-entity-repository';
|
||||
import { Teacher } from '../../entities/users/teacher.entity';
|
||||
|
||||
export class TeacherRepository extends DwengoEntityRepository<Teacher> {
|
||||
public findByUsername(username: string): Promise<Teacher | null> {
|
||||
return this.findOne({username: username});
|
||||
return this.findOne({ username: username });
|
||||
}
|
||||
public deleteByUsername(username: string): Promise<void> {
|
||||
return this.deleteWhere({username: username});
|
||||
return this.deleteWhere({ username: username });
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
import {DwengoEntityRepository} from "../dwengo-entity-repository";
|
||||
import {User} from "../../entities/users/user.entity";
|
||||
import { DwengoEntityRepository } from '../dwengo-entity-repository';
|
||||
import { User } from '../../entities/users/user.entity';
|
||||
|
||||
export class UserRepository extends DwengoEntityRepository<User> {
|
||||
public findByUsername(username: string): Promise<User | null> {
|
||||
return this.findOne({username: username});
|
||||
return this.findOne({ username: username });
|
||||
}
|
||||
public deleteByUsername(username: string): Promise<void> {
|
||||
return this.deleteWhere({username: username});
|
||||
return this.deleteWhere({ username: username });
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue