merge: merge fix/183-post-assignment into dev

This commit is contained in:
Adriaan Jacquet 2025-04-17 18:51:17 +02:00
commit 5a593cb88f
67 changed files with 2205 additions and 2129 deletions

View file

@ -1,17 +1,31 @@
import { Group } from '../entities/assignments/group.entity.js';
import { Class } from '../entities/classes/class.entity.js';
import { mapToAssignment } from './assignment.js';
import { mapToStudent } from './student.js';
import { mapToAssignmentDTO } from './assignment.js';
import { mapToStudentDTO } from './student.js';
import { GroupDTO, GroupDTOId } from '@dwengo-1/common/interfaces/group';
import { getGroupRepository } from '../data/repositories.js';
import { AssignmentDTO } from '@dwengo-1/common/interfaces/assignment';
import { Class } from '../entities/classes/class.entity.js';
import { StudentDTO } from '@dwengo-1/common/interfaces/student';
import { mapToClassDTO } from './class.js';
export function mapToGroupDTO(group: Group, cls: Class, options?: { expandStudents: boolean }): GroupDTO {
export function mapToGroup(groupDto: GroupDTO, clazz: Class): Group {
const assignmentDto = groupDto.assignment as AssignmentDTO;
return getGroupRepository().create({
groupNumber: groupDto.groupNumber,
assignment: mapToAssignment(assignmentDto, clazz),
members: groupDto.members!.map((studentDto) => mapToStudent(studentDto as StudentDTO)),
});
}
export function mapToGroupDTO(group: Group, cls: Class): GroupDTO {
return {
class: cls.classId!,
assignment: group.assignment.id!,
groupNumber: group.groupNumber!,
members:
options?.expandStudents
? group.members.map(mapToStudentDTO)
: group.members.map((student) => student.username)
members: group.members.map(mapToStudentDTO)
};
}
@ -23,3 +37,15 @@ export function mapToGroupDTOId(group: Group, cls: Class): GroupDTOId {
groupNumber: group.groupNumber!,
};
}
/**
* Map to group DTO where other objects are only referenced by their id.
*/
export function mapToShallowGroupDTO(group: Group): GroupDTO {
return {
class: group.assignment.within.classId!,
assignment: group.assignment.id!,
groupNumber: group.groupNumber!,
members: group.members.map((member) => member.username),
};
}