47 lines
1.8 KiB
TypeScript
47 lines
1.8 KiB
TypeScript
import { Submission } from '../entities/assignments/submission.entity.js';
|
|
import { Language } from '../entities/content/language.js';
|
|
import { GroupDTO, mapToGroupDTO } from './group.js';
|
|
import { mapToStudent, mapToStudentDTO, StudentDTO } from './student.js';
|
|
import { mapToUser } from './user';
|
|
import { Student } from '../entities/users/student.entity';
|
|
|
|
export interface SubmissionDTO {
|
|
learningObjectHruid: string;
|
|
learningObjectLanguage: Language;
|
|
learningObjectVersion: number;
|
|
|
|
submissionNumber?: number;
|
|
submitter: StudentDTO;
|
|
time?: Date;
|
|
group?: GroupDTO;
|
|
content: string;
|
|
}
|
|
|
|
export function mapToSubmissionDTO(submission: Submission): SubmissionDTO {
|
|
return {
|
|
learningObjectHruid: submission.learningObjectHruid,
|
|
learningObjectLanguage: submission.learningObjectLanguage,
|
|
learningObjectVersion: submission.learningObjectVersion,
|
|
|
|
submissionNumber: submission.submissionNumber,
|
|
submitter: mapToStudentDTO(submission.submitter),
|
|
time: submission.submissionTime,
|
|
group: submission.onBehalfOf ? mapToGroupDTO(submission.onBehalfOf) : undefined,
|
|
content: submission.content,
|
|
};
|
|
}
|
|
|
|
export function mapToSubmission(submissionDTO: SubmissionDTO): Submission {
|
|
const submission = new Submission();
|
|
submission.learningObjectHruid = submissionDTO.learningObjectHruid;
|
|
submission.learningObjectLanguage = submissionDTO.learningObjectLanguage;
|
|
submission.learningObjectVersion = submissionDTO.learningObjectVersion;
|
|
// Submission.submissionNumber = submissionDTO.submissionNumber;
|
|
submission.submitter = mapToStudent(submissionDTO.submitter);
|
|
// Submission.submissionTime = submissionDTO.time;
|
|
// Submission.onBehalfOf = submissionDTO.group!;
|
|
// TODO fix group
|
|
submission.content = submissionDTO.content;
|
|
|
|
return submission;
|
|
}
|