From 8ec201513ce4986094e907cb2e871f6c4350bf18 Mon Sep 17 00:00:00 2001 From: Gerald Schmittinger Date: Wed, 26 Feb 2025 00:52:45 +0100 Subject: [PATCH] feat(backend): Repositories voor leerinhoud LearningObjectRepository, LearningPathRepository en AttachmentRepository aangemaakt. --- backend/src/data/content/attachment-repository.ts | 10 ++++++++++ .../src/data/content/learning-object-repository.ts | 14 ++++++++++++++ .../src/data/content/learning-path-repository.ts | 10 ++++++++++ backend/src/entities/content/attachment.entity.ts | 2 +- .../src/entities/content/learning-path.entity.ts | 2 +- 5 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 backend/src/data/content/attachment-repository.ts create mode 100644 backend/src/data/content/learning-object-repository.ts create mode 100644 backend/src/data/content/learning-path-repository.ts diff --git a/backend/src/data/content/attachment-repository.ts b/backend/src/data/content/attachment-repository.ts new file mode 100644 index 00000000..aa14fbe5 --- /dev/null +++ b/backend/src/data/content/attachment-repository.ts @@ -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 { + 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. +} diff --git a/backend/src/data/content/learning-object-repository.ts b/backend/src/data/content/learning-object-repository.ts new file mode 100644 index 00000000..fa8019c0 --- /dev/null +++ b/backend/src/data/content/learning-object-repository.ts @@ -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 { + public findByIdentifier(identifier: LearningObjectIdentifier): Promise { + 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. +} diff --git a/backend/src/data/content/learning-path-repository.ts b/backend/src/data/content/learning-path-repository.ts new file mode 100644 index 00000000..0dd1f876 --- /dev/null +++ b/backend/src/data/content/learning-path-repository.ts @@ -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 { + public findByHruidAndLanguage(hruid: string, language: Language): Promise { + return this.findOne({hruid: hruid, language: language}); + } + // This repository is read-only for now since creating own learning object is an extension feature. +} diff --git a/backend/src/entities/content/attachment.entity.ts b/backend/src/entities/content/attachment.entity.ts index 600d2a83..4a14c4fe 100644 --- a/backend/src/entities/content/attachment.entity.ts +++ b/backend/src/entities/content/attachment.entity.ts @@ -7,7 +7,7 @@ export class Attachment { learningObject!: LearningObject; @PrimaryKey({type: "integer"}) - no!: number; + sequenceNumber!: number; @Property({type: "string"}) mimeType!: string; diff --git a/backend/src/entities/content/learning-path.entity.ts b/backend/src/entities/content/learning-path.entity.ts index ef694af0..24d058ea 100644 --- a/backend/src/entities/content/learning-path.entity.ts +++ b/backend/src/entities/content/learning-path.entity.ts @@ -23,7 +23,7 @@ export class LearningPath { image!: string; @Embedded({entity: () => LearningPathNode, array: true}) - nodes: LearningPathNode[]; + nodes: LearningPathNode[] = []; } @Embeddable()