diff --git a/backend/src/controllers/learningPaths.ts b/backend/src/controllers/learningPaths.ts index 247877e7..acf76f60 100644 --- a/backend/src/controllers/learningPaths.ts +++ b/backend/src/controllers/learningPaths.ts @@ -26,9 +26,7 @@ export async function getLearningPaths( ? hruids.map(String) : [String(hruids)]; } else if (themeKey) { - const theme = themes.find((t) => { - return t.title === themeKey; - }); + const theme = themes.find((t) => t.title === themeKey); if (theme) { hruidList = theme.hruids; } else { @@ -45,9 +43,7 @@ export async function getLearningPaths( res.json(searchResults); return; } else { - hruidList = themes.flatMap((theme) => { - return theme.hruids; - }); + hruidList = themes.flatMap((theme) => theme.hruids); } const learningPaths = await fetchLearningPaths( diff --git a/backend/src/controllers/themes.ts b/backend/src/controllers/themes.ts index a85cac21..62fd1e79 100644 --- a/backend/src/controllers/themes.ts +++ b/backend/src/controllers/themes.ts @@ -11,24 +11,20 @@ interface Translations { export function getThemes(req: Request, res: Response) { const language = (req.query.language as string)?.toLowerCase() || 'nl'; const translations = loadTranslations(language); - const themeList = themes.map((theme) => { - return { + const themeList = themes.map((theme) => ({ key: theme.title, title: translations.curricula_page[theme.title]?.title || theme.title, description: translations.curricula_page[theme.title]?.description, image: `https://dwengo.org/images/curricula/logo_${theme.title}.png`, - }; - }); + })); res.json(themeList); } export function getThemeByTitle(req: Request, res: Response) { const themeKey = req.params.theme; - const theme = themes.find((t) => { - return t.title === themeKey; - }); + const theme = themes.find((t) => t.title === themeKey); if (theme) { res.json(theme.hruids); diff --git a/backend/src/entities/assignments/group.entity.ts b/backend/src/entities/assignments/group.entity.ts index 5b224087..d8142bdb 100644 --- a/backend/src/entities/assignments/group.entity.ts +++ b/backend/src/entities/assignments/group.entity.ts @@ -5,9 +5,7 @@ import { Student } from '../users/student.entity.js'; @Entity() export class Group { @ManyToOne({ - entity: () => { - return Assignment; - }, + entity: () => Assignment, primary: true, }) assignment!: Assignment; @@ -16,9 +14,7 @@ export class Group { groupNumber!: number; @ManyToMany({ - entity: () => { - return Student; - }, + entity: () => Student, }) members!: Student[]; } diff --git a/backend/src/entities/assignments/submission.entity.ts b/backend/src/entities/assignments/submission.entity.ts index 1bc28add..77e01da8 100644 --- a/backend/src/entities/assignments/submission.entity.ts +++ b/backend/src/entities/assignments/submission.entity.ts @@ -9,9 +9,7 @@ export class Submission { learningObjectHruid!: string; @Enum({ - items: () => { - return Language; - }, + items: () => Language, primary: true, }) learningObjectLanguage!: Language; @@ -23,9 +21,7 @@ export class Submission { submissionNumber!: number; @ManyToOne({ - entity: () => { - return Student; - }, + entity: () => Student, }) submitter!: Student; @@ -33,9 +29,7 @@ export class Submission { submissionTime!: Date; @ManyToOne({ - entity: () => { - return Group; - }, + entity: () => Group, nullable: true, }) onBehalfOf?: Group; diff --git a/backend/src/entities/classes/class-join-request.entity.ts b/backend/src/entities/classes/class-join-request.entity.ts index 0ae38cd1..06e4095b 100644 --- a/backend/src/entities/classes/class-join-request.entity.ts +++ b/backend/src/entities/classes/class-join-request.entity.ts @@ -5,24 +5,18 @@ import { Class } from './class.entity.js'; @Entity() export class ClassJoinRequest { @ManyToOne({ - entity: () => { - return Student; - }, + entity: () => Student, primary: true, }) requester!: Student; @ManyToOne({ - entity: () => { - return Class; - }, + entity: () => Class, primary: true, }) class!: Class; - @Enum(() => { - return ClassJoinRequestStatus; - }) + @Enum(() => ClassJoinRequestStatus) status!: ClassJoinRequestStatus; } diff --git a/backend/src/entities/classes/class.entity.ts b/backend/src/entities/classes/class.entity.ts index ecc11748..1f5835d2 100644 --- a/backend/src/entities/classes/class.entity.ts +++ b/backend/src/entities/classes/class.entity.ts @@ -17,13 +17,9 @@ export class Class { @Property({ type: 'string' }) displayName!: string; - @ManyToMany(() => { - return Teacher; - }) + @ManyToMany(() => Teacher) teachers!: Collection; - @ManyToMany(() => { - return Student; - }) + @ManyToMany(() => Student) students!: Collection; } diff --git a/backend/src/entities/classes/teacher-invitation.entity.ts b/backend/src/entities/classes/teacher-invitation.entity.ts index 98d2bdd4..a09d71d0 100644 --- a/backend/src/entities/classes/teacher-invitation.entity.ts +++ b/backend/src/entities/classes/teacher-invitation.entity.ts @@ -8,25 +8,19 @@ import { Class } from './class.entity.js'; @Entity() export class TeacherInvitation { @ManyToOne({ - entity: () => { - return Teacher; - }, + entity: () => Teacher, primary: true, }) sender!: Teacher; @ManyToOne({ - entity: () => { - return Teacher; - }, + entity: () => Teacher, primary: true, }) receiver!: Teacher; @ManyToOne({ - entity: () => { - return Class; - }, + entity: () => Class, primary: true, }) class!: Class; diff --git a/backend/src/entities/content/attachment.entity.ts b/backend/src/entities/content/attachment.entity.ts index 7a9dd946..9e4c6275 100644 --- a/backend/src/entities/content/attachment.entity.ts +++ b/backend/src/entities/content/attachment.entity.ts @@ -4,9 +4,7 @@ import { LearningObject } from './learning-object.entity.js'; @Entity() export class Attachment { @ManyToOne({ - entity: () => { - return LearningObject; - }, + entity: () => LearningObject, primary: true, }) learningObject!: LearningObject; diff --git a/backend/src/entities/content/learning-object.entity.ts b/backend/src/entities/content/learning-object.entity.ts index bf499e8a..71f8e69d 100644 --- a/backend/src/entities/content/learning-object.entity.ts +++ b/backend/src/entities/content/learning-object.entity.ts @@ -18,9 +18,7 @@ export class LearningObject { hruid!: string; @Enum({ - items: () => { - return Language; - }, + items: () => Language, primary: true, }) language!: Language; @@ -29,9 +27,7 @@ export class LearningObject { version: string = '1'; @ManyToMany({ - entity: () => { - return Teacher; - }, + entity: () => Teacher, }) admins!: Teacher[]; @@ -57,9 +53,7 @@ export class LearningObject { skosConcepts!: string[]; @Embedded({ - entity: () => { - return EducationalGoal; - }, + entity: () => EducationalGoal, array: true, }) educationalGoals: EducationalGoal[] = []; @@ -77,9 +71,7 @@ export class LearningObject { estimatedTime!: number; @Embedded({ - entity: () => { - return ReturnValue; - }, + entity: () => ReturnValue, }) returnValue!: ReturnValue; @@ -90,9 +82,7 @@ export class LearningObject { contentLocation?: string; @OneToMany({ - entity: () => { - return Attachment; - }, + entity: () => Attachment, mappedBy: 'learningObject', }) attachments: Attachment[] = []; diff --git a/backend/src/entities/content/learning-path.entity.ts b/backend/src/entities/content/learning-path.entity.ts index 28d3cadd..4048daa6 100644 --- a/backend/src/entities/content/learning-path.entity.ts +++ b/backend/src/entities/content/learning-path.entity.ts @@ -17,17 +17,13 @@ export class LearningPath { hruid!: string; @Enum({ - items: () => { - return Language; - }, + items: () => Language, primary: true, }) language!: Language; @ManyToMany({ - entity: () => { - return Teacher; - }, + entity: () => Teacher, }) admins!: Teacher[]; @@ -41,9 +37,7 @@ export class LearningPath { image!: string; @Embedded({ - entity: () => { - return LearningPathNode; - }, + entity: () => LearningPathNode, array: true, }) nodes: LearningPathNode[] = []; @@ -55,9 +49,7 @@ export class LearningPathNode { learningObjectHruid!: string; @Enum({ - items: () => { - return Language; - }, + items: () => Language, }) language!: Language; @@ -71,9 +63,7 @@ export class LearningPathNode { startNode!: boolean; @Embedded({ - entity: () => { - return LearningPathTransition; - }, + entity: () => LearningPathTransition, array: true, }) transitions!: LearningPathTransition[]; @@ -85,9 +75,7 @@ export class LearningPathTransition { condition!: string; @OneToOne({ - entity: () => { - return LearningPathNode; - }, + entity: () => LearningPathNode, }) next!: LearningPathNode; } diff --git a/backend/src/entities/questions/answer.entity.ts b/backend/src/entities/questions/answer.entity.ts index f0b67a54..627a49d0 100644 --- a/backend/src/entities/questions/answer.entity.ts +++ b/backend/src/entities/questions/answer.entity.ts @@ -5,17 +5,13 @@ import { Teacher } from '../users/teacher.entity.js'; @Entity() export class Answer { @ManyToOne({ - entity: () => { - return Teacher; - }, + entity: () => Teacher, primary: true, }) author!: Teacher; @ManyToOne({ - entity: () => { - return Question; - }, + entity: () => Question, primary: true, }) toQuestion!: Question; diff --git a/backend/src/entities/questions/question.entity.ts b/backend/src/entities/questions/question.entity.ts index 444d2179..854a4512 100644 --- a/backend/src/entities/questions/question.entity.ts +++ b/backend/src/entities/questions/question.entity.ts @@ -8,9 +8,7 @@ export class Question { learningObjectHruid!: string; @Enum({ - items: () => { - return Language; - }, + items: () => Language, primary: true, }) learningObjectLanguage!: Language; @@ -22,9 +20,7 @@ export class Question { sequenceNumber!: number; @ManyToOne({ - entity: () => { - return Student; - }, + entity: () => Student, }) author!: Student; diff --git a/backend/src/entities/users/student.entity.ts b/backend/src/entities/users/student.entity.ts index c5632e84..da5b4367 100644 --- a/backend/src/entities/users/student.entity.ts +++ b/backend/src/entities/users/student.entity.ts @@ -5,19 +5,13 @@ import { Group } from '../assignments/group.entity.js'; import { StudentRepository } from '../../data/users/student-repository.js'; @Entity({ - repository: () => { - return StudentRepository; - }, + repository: () => StudentRepository, }) export class Student extends User { - @ManyToMany(() => { - return Class; - }) + @ManyToMany(() => Class) classes!: Collection; - @ManyToMany(() => { - return Group; - }) + @ManyToMany(() => Group) groups!: Collection; constructor( diff --git a/backend/src/entities/users/teacher.entity.ts b/backend/src/entities/users/teacher.entity.ts index 9f11a3b0..2327527c 100644 --- a/backend/src/entities/users/teacher.entity.ts +++ b/backend/src/entities/users/teacher.entity.ts @@ -4,8 +4,6 @@ import { Class } from '../classes/class.entity.js'; @Entity() export class Teacher extends User { - @ManyToMany(() => { - return Class; - }) + @ManyToMany(() => Class) classes!: Collection; } diff --git a/backend/src/mikro-orm.config.ts b/backend/src/mikro-orm.config.ts index f9629bef..56221473 100644 --- a/backend/src/mikro-orm.config.ts +++ b/backend/src/mikro-orm.config.ts @@ -52,9 +52,7 @@ function config(testingMode: boolean = false): Options { // Workaround: vitest: `TypeError: Unknown file extension ".ts"` (ERR_UNKNOWN_FILE_EXTENSION) // (see https://mikro-orm.io/docs/guide/project-setup#testing-the-endpoint) - dynamicImportProvider: (id) => { - return import(id); - }, + dynamicImportProvider: (id) => import(id), }; } @@ -70,9 +68,7 @@ function config(testingMode: boolean = false): Options { // Logging debug: LOG_LEVEL === 'debug', - loggerFactory: (options: LoggerOptions) => { - return new MikroOrmLogger(options); - }, + loggerFactory: (options: LoggerOptions) => new MikroOrmLogger(options), }; } diff --git a/backend/src/services/learningObjects.ts b/backend/src/services/learningObjects.ts index 59cf6d31..4bfed3dc 100644 --- a/backend/src/services/learningObjects.ts +++ b/backend/src/services/learningObjects.ts @@ -89,23 +89,15 @@ async function fetchLearningObjects( const nodes: LearningObjectNode[] = learningPathResponse.data[0].nodes; if (!full) { - return nodes.map((node) => { - return node.learningobject_hruid; - }); + return nodes.map((node) => node.learningobject_hruid); } return await Promise.all( - nodes.map(async (node) => { - return getLearningObjectById( + nodes.map(async (node) => getLearningObjectById( node.learningobject_hruid, language - ); - }) - ).then((objects) => { - return objects.filter((obj): obj is FilteredLearningObject => { - return obj !== null; - }); - }); + )) + ).then((objects) => objects.filter((obj): obj is FilteredLearningObject => obj !== null)); } catch (error) { logger.error('❌ Error fetching learning objects:', error); return []; diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts index 558d88e7..eaefcd6c 100644 --- a/frontend/src/router/index.ts +++ b/frontend/src/router/index.ts @@ -22,16 +22,12 @@ const router = createRouter({ { path: "/", name: "home", - component: () => { - return import("../views/HomePage.vue"); - }, + component: () => import("../views/HomePage.vue"), }, { path: "/login", name: "LoginPage", - component: () => { - return import("../views/LoginPage.vue"); - }, + component: () => import("../views/LoginPage.vue"), }, { path: "/student/:id",