feat(backend): Repositories voor leerinhoud

LearningObjectRepository, LearningPathRepository en AttachmentRepository aangemaakt.
This commit is contained in:
Gerald Schmittinger 2025-02-26 00:52:45 +01:00
parent cf97a3af84
commit 8ec201513c
5 changed files with 36 additions and 2 deletions

View file

@ -0,0 +1,10 @@
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});
}
// This repository is read-only for now since creating own learning object is an extension feature.
}

View file

@ -0,0 +1,14 @@
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> {
return this.findOne({
hruid: identifier.hruid,
language: identifier.language,
version: identifier.version
});
}
// This repository is read-only for now since creating own learning object is an extension feature.
}

View file

@ -0,0 +1,10 @@
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});
}
// This repository is read-only for now since creating own learning object is an extension feature.
}

View file

@ -7,7 +7,7 @@ export class Attachment {
learningObject!: LearningObject;
@PrimaryKey({type: "integer"})
no!: number;
sequenceNumber!: number;
@Property({type: "string"})
mimeType!: string;

View file

@ -23,7 +23,7 @@ export class LearningPath {
image!: string;
@Embedded({entity: () => LearningPathNode, array: true})
nodes: LearningPathNode[];
nodes: LearningPathNode[] = [];
}
@Embeddable()