fix(backend): Bugs omtrent leerpad-endpoints opgelost

This commit is contained in:
Gerald Schmittinger 2025-05-13 01:02:53 +02:00
parent 6929288554
commit 1a768fedcc
6 changed files with 12 additions and 12 deletions

View file

@ -12,7 +12,7 @@ export class LearningObjectRepository extends DwengoEntityRepository<LearningObj
version: identifier.version, version: identifier.version,
}, },
{ {
populate: ['keywords'], populate: ['keywords', 'admins'],
} }
); );
} }

View file

@ -35,9 +35,7 @@ export class LearningPathRepository extends DwengoEntityRepository<LearningPath>
return this.findAll({ return this.findAll({
where: { where: {
admins: { admins: {
$contains: { username: adminUsername
username: adminUsername
}
} }
} }
}); });

View file

@ -1,5 +1,6 @@
import { import {
ArrayType, ArrayType,
Cascade,
Collection, Collection,
Embedded, Embedded,
Entity, Entity,
@ -93,6 +94,7 @@ export class LearningObject {
@OneToMany({ @OneToMany({
entity: () => Attachment, entity: () => Attachment,
mappedBy: 'learningObject', mappedBy: 'learningObject',
cascade: [Cascade.ALL]
}) })
attachments: Collection<Attachment> = new Collection<Attachment>(this); attachments: Collection<Attachment> = new Collection<Attachment>(this);

View file

@ -12,5 +12,5 @@ export const onlyAdminsForLearningObject = authorize(async (auth: Authentication
language: language as Language, language: language as Language,
version: parseInt(version as string) version: parseInt(version as string)
}); });
return auth.username in admins; return admins.includes(auth.username);
}); });

View file

@ -3,10 +3,10 @@ import { authorize } from "../auth";
import { AuthenticatedRequest } from "../authenticated-request"; import { AuthenticatedRequest } from "../authenticated-request";
import { AuthenticationInfo } from "../authentication-info"; import { AuthenticationInfo } from "../authentication-info";
export const onlyAdminsForLearningPath = authorize((auth: AuthenticationInfo, req: AuthenticatedRequest) => { export const onlyAdminsForLearningPath = authorize(async (auth: AuthenticationInfo, req: AuthenticatedRequest) => {
const adminsForLearningPath = learningPathService.getAdmins({ const adminsForLearningPath = await learningPathService.getAdmins({
hruid: req.body.hruid, hruid: req.body.hruid,
language: req.body.language language: req.body.language
}); });
return adminsForLearningPath && auth.username in adminsForLearningPath; return adminsForLearningPath && adminsForLearningPath.includes(auth.username);
}); });

View file

@ -18,7 +18,7 @@ export async function processLearningObjectZip(filePath: string): Promise<Learni
try { try {
zip = await unzipper.Open.file(filePath); zip = await unzipper.Open.file(filePath);
} catch(_: unknown) { } catch(_: unknown) {
throw new BadRequestException("invalid_zip"); throw new BadRequestException("invalidZip");
} }
@ -27,7 +27,7 @@ export async function processLearningObjectZip(filePath: string): Promise<Learni
let content: Buffer | undefined = undefined; let content: Buffer | undefined = undefined;
if (zip.files.length === 0) { if (zip.files.length === 0) {
throw new BadRequestException("empty_zip") throw new BadRequestException("emptyZip")
} }
await Promise.all( await Promise.all(
@ -48,10 +48,10 @@ export async function processLearningObjectZip(filePath: string): Promise<Learni
); );
if (!metadata) { if (!metadata) {
throw new BadRequestException("missing_metadata"); throw new BadRequestException("missingMetadata");
} }
if (!content) { if (!content) {
throw new BadRequestException("missing_index"); throw new BadRequestException("missingIndex");
} }