feat: (BROKEN) kolossale bug in POST group aan het fixen

This commit is contained in:
Adriaan Jacquet 2025-03-13 16:39:59 +01:00
parent 1b66493821
commit 53c85eadb0
6 changed files with 36 additions and 13 deletions

View file

@ -1,4 +1,15 @@
import { Student } from '../../entities/users/student.entity.js'; import { Student } from '../../entities/users/student.entity.js';
import { UserRepository } from './user-repository.js'; import { User } from '../../entities/users/user.entity.js';
import { DwengoEntityRepository } from '../dwengo-entity-repository.js';
// import { UserRepository } from './user-repository.js';
export class StudentRepository extends UserRepository<Student> {} // export class StudentRepository extends UserRepository<Student> {}
export class StudentRepository extends DwengoEntityRepository<Student> {
public findByUsername(username: string): Promise<Student | null> {
return this.findOne({ username: username });
}
public deleteByUsername(username: string): Promise<void> {
return this.deleteWhere({ username: username });
}
}

View file

@ -1,4 +1,12 @@
import { Teacher } from '../../entities/users/teacher.entity.js'; import { Teacher } from '../../entities/users/teacher.entity.js';
import { DwengoEntityRepository } from '../dwengo-entity-repository.js';
import { UserRepository } from './user-repository.js'; import { UserRepository } from './user-repository.js';
export class TeacherRepository extends UserRepository<Teacher> {} export class TeacherRepository extends DwengoEntityRepository<Teacher> {
public findByUsername(username: string): Promise<Teacher | null> {
return this.findOne({ username: username });
}
public deleteByUsername(username: string): Promise<void> {
return this.deleteWhere({ username: username });
}
}

View file

@ -1,4 +1,5 @@
import { import {
Collection,
Entity, Entity,
Enum, Enum,
ManyToOne, ManyToOne,
@ -50,5 +51,5 @@ export class Assignment {
}, },
mappedBy: 'assignment', mappedBy: 'assignment',
}) })
groups!: Group[]; groups!: Collection<Group>;
} }

View file

@ -1,4 +1,4 @@
import { Entity, ManyToMany, ManyToOne, PrimaryKey } from '@mikro-orm/core'; import { Collection, Entity, ManyToMany, ManyToOne, PrimaryKey } from '@mikro-orm/core';
import { Assignment } from './assignment.entity.js'; import { Assignment } from './assignment.entity.js';
import { Student } from '../users/student.entity.js'; import { Student } from '../users/student.entity.js';
import { GroupRepository } from '../../data/assignments/group-repository.js'; import { GroupRepository } from '../../data/assignments/group-repository.js';
@ -20,10 +20,8 @@ export class Group {
@PrimaryKey({ type: 'integer', autoincrement: true }) @PrimaryKey({ type: 'integer', autoincrement: true })
groupNumber?: number; groupNumber?: number;
@ManyToMany({ @ManyToMany(() => {
entity: () => {
return Student; return Student;
},
}) })
members!: Student[]; members!: Collection<Student>;
} }

View file

@ -19,4 +19,12 @@ export class Student extends User {
return Group; return Group;
}) })
groups!: Collection<Group>; groups!: Collection<Group>;
constructor(
public username: string,
public firstName: string,
public lastName: string
) {
super();
}
} }

View file

@ -83,14 +83,11 @@ export async function createGroup(
const groupRepository = getGroupRepository(); const groupRepository = getGroupRepository();
try { try {
console.log('EEEEE');
const newGroup = groupRepository.create({ const newGroup = groupRepository.create({
assignment: assignment, assignment: assignment,
members: members, members: members,
}); });
console.log('OOOOOO');
await groupRepository.save(newGroup); await groupRepository.save(newGroup);
console.log('AAAAAA');
return newGroup; return newGroup;
} catch(e) { } catch(e) {