fix(backend): Update MikroORM, Fix voor 'pks not iterable' problem in Groups

This commit is contained in:
Gerald Schmittinger 2025-04-15 11:03:41 +02:00
parent 451ac7546f
commit 9c638b11f6
5 changed files with 57 additions and 53 deletions

View file

@ -16,11 +16,11 @@
"test:unit": "vitest --run"
},
"dependencies": {
"@mikro-orm/core": "6.4.9",
"@mikro-orm/knex": "6.4.9",
"@mikro-orm/postgresql": "6.4.9",
"@mikro-orm/reflection": "6.4.9",
"@mikro-orm/sqlite": "6.4.9",
"@mikro-orm/core": "6.4.12",
"@mikro-orm/knex": "6.4.12",
"@mikro-orm/postgresql": "6.4.12",
"@mikro-orm/reflection": "6.4.12",
"@mikro-orm/sqlite": "6.4.12",
"axios": "^1.8.2",
"cors": "^2.8.5",
"cross": "^1.0.0",
@ -43,7 +43,7 @@
"winston-loki": "^6.1.3"
},
"devDependencies": {
"@mikro-orm/cli": "6.4.9",
"@mikro-orm/cli": "6.4.12",
"@types/cors": "^2.8.17",
"@types/express": "^5.0.0",
"@types/js-yaml": "^4.0.9",

View file

@ -35,5 +35,5 @@ export class Assignment {
entity: () => Group,
mappedBy: 'assignment',
})
groups!: Collection<Group>;
groups: Collection<Group> = new Collection<Group>(this);
}

View file

@ -7,15 +7,19 @@ import { GroupRepository } from '../../data/assignments/group-repository.js';
repository: () => GroupRepository,
})
export class Group {
@ManyToOne({
entity: () => Assignment,
primary: true,
})
assignment!: Assignment;
/*
WARNING: Don't move the definition of groupNumber! If it does not come before the definition of assignment,
creating groups fails because of a MikroORM bug!
*/
@PrimaryKey({ type: 'integer', autoincrement: true })
groupNumber?: number;
@ManyToOne({
entity: () => Assignment,
primary: true
})
assignment!: Assignment;
@ManyToMany({
entity: () => Student,
owner: true,

View file

@ -1,6 +1,6 @@
import { Group } from '../entities/assignments/group.entity.js';
import { Class } from '../entities/classes/class.entity.js';
import { mapToAssignmentDTO } from './assignment.js';
import {mapToAssignmentDTOId} from './assignment.js';
import { mapToClassDTO } from './class.js';
import { mapToStudentDTO } from './student.js';
import { GroupDTO } from '@dwengo-1/common/interfaces/group';
@ -8,7 +8,7 @@ import { GroupDTO } from '@dwengo-1/common/interfaces/group';
export function mapToGroupDTO(group: Group, cls: Class): GroupDTO {
return {
class: mapToClassDTO(cls),
assignment: mapToAssignmentDTO(group.assignment),
assignment: mapToAssignmentDTOId(group.assignment),
groupNumber: group.groupNumber!,
members: group.members.map(mapToStudentDTO),
};