36 lines
1.4 KiB
TypeScript
36 lines
1.4 KiB
TypeScript
import { languageMap } from '@dwengo-1/common/util/language';
|
|
import { Assignment } from '../entities/assignments/assignment.entity.js';
|
|
import { Class } from '../entities/classes/class.entity.js';
|
|
import { AssignmentDTO, AssignmentDTOId } from '@dwengo-1/common/interfaces/assignment';
|
|
import { mapToGroupDTO } from './group.js';
|
|
import { getAssignmentRepository } from '../data/repositories.js';
|
|
|
|
export function mapToAssignmentDTOId(assignment: Assignment): AssignmentDTOId {
|
|
return {
|
|
id: assignment.id!,
|
|
within: assignment.within.classId!,
|
|
};
|
|
}
|
|
|
|
export function mapToAssignmentDTO(assignment: Assignment): AssignmentDTO {
|
|
return {
|
|
id: assignment.id!,
|
|
within: assignment.within.classId!,
|
|
title: assignment.title,
|
|
description: assignment.description,
|
|
learningPath: assignment.learningPathHruid,
|
|
language: assignment.learningPathLanguage,
|
|
groups: assignment.groups.map((group) => mapToGroupDTO(group, assignment.within)),
|
|
};
|
|
}
|
|
|
|
export function mapToAssignment(assignmentData: AssignmentDTO, cls: Class): Assignment {
|
|
return getAssignmentRepository().create({
|
|
within: cls,
|
|
title: assignmentData.title,
|
|
description: assignmentData.description,
|
|
learningPathHruid: assignmentData.learningPath,
|
|
learningPathLanguage: languageMap[assignmentData.language],
|
|
groups: [],
|
|
});
|
|
}
|