Merge remote-tracking branch 'origin/dev' into feat/questions-answers-en-submissions-groep-specifiek-maken-#163
# Conflicts: # backend/src/controllers/questions.ts # backend/src/controllers/submissions.ts # backend/src/data/questions/question-repository.ts # backend/src/interfaces/group.ts # backend/src/interfaces/question.ts # backend/src/interfaces/submission.ts # backend/src/routes/submissions.ts # backend/src/services/groups.ts # backend/src/services/questions.ts # backend/src/services/students.ts # backend/src/services/submissions.ts # common/src/interfaces/question.ts
This commit is contained in:
		
						commit
						d6dd7fb3bf
					
				
					 90 changed files with 2934 additions and 792 deletions
				
			
		|  | @ -1,14 +1,14 @@ | |||
| import { mapToUserDTO } from './user.js'; | ||||
| import { mapToQuestionDTO, mapToQuestionDTOId } from './question.js'; | ||||
| import { Answer } from '../entities/questions/answer.entity.js'; | ||||
| import { AnswerDTO, AnswerId } from '@dwengo-1/common/interfaces/answer'; | ||||
| import { mapToTeacherDTO } from './teacher.js'; | ||||
| 
 | ||||
| /** | ||||
|  * Convert a Question entity to a DTO format. | ||||
|  */ | ||||
| export function mapToAnswerDTO(answer: Answer): AnswerDTO { | ||||
|     return { | ||||
|         author: mapToUserDTO(answer.author), | ||||
|         author: mapToTeacherDTO(answer.author), | ||||
|         toQuestion: mapToQuestionDTO(answer.toQuestion), | ||||
|         sequenceNumber: answer.sequenceNumber!, | ||||
|         timestamp: answer.timestamp.toISOString(), | ||||
|  |  | |||
|  | @ -8,19 +8,18 @@ import { AssignmentDTO } from '@dwengo-1/common/interfaces/assignment'; | |||
| export function mapToAssignmentDTOId(assignment: Assignment): AssignmentDTO { | ||||
|     return { | ||||
|         id: assignment.id!, | ||||
|         class: assignment.within.classId!, | ||||
|         within: assignment.within.classId!, | ||||
|         title: assignment.title, | ||||
|         description: assignment.description, | ||||
|         learningPath: assignment.learningPathHruid, | ||||
|         language: assignment.learningPathLanguage, | ||||
|         // Groups: assignment.groups.map(group => group.groupNumber),
 | ||||
|     }; | ||||
| } | ||||
| 
 | ||||
| export function mapToAssignmentDTO(assignment: Assignment): AssignmentDTO { | ||||
|     return { | ||||
|         id: assignment.id!, | ||||
|         class: assignment.within.classId!, | ||||
|         within: assignment.within.classId!, | ||||
|         title: assignment.title, | ||||
|         description: assignment.description, | ||||
|         learningPath: assignment.learningPathHruid, | ||||
|  |  | |||
|  | @ -10,7 +10,6 @@ export function mapToClassDTO(cls: Class): ClassDTO { | |||
|         displayName: cls.displayName, | ||||
|         teachers: cls.teachers.map((teacher) => teacher.username), | ||||
|         students: cls.students.map((student) => student.username), | ||||
|         joinRequests: [], // TODO
 | ||||
|     }; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,11 +1,14 @@ | |||
| import { Group } from '../entities/assignments/group.entity.js'; | ||||
| import { mapToAssignment, mapToAssignmentDTO, mapToAssignmentDTOId } from './assignment.js'; | ||||
| import { mapToStudent, mapToStudentDTO } from './student.js'; | ||||
| import { mapToAssignment } from './assignment.js'; | ||||
| import { mapToStudent } from './student.js'; | ||||
| import { mapToAssignmentDTO } from './assignment.js'; | ||||
| import { mapToStudentDTO } from './student.js'; | ||||
| import { GroupDTO } 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"; | ||||
| 
 | ||||
| export function mapToGroup(groupDto: GroupDTO, clazz: Class): Group { | ||||
|     const assignmentDto = groupDto.assignment as AssignmentDTO; | ||||
|  | @ -19,7 +22,8 @@ export function mapToGroup(groupDto: GroupDTO, clazz: Class): Group { | |||
| 
 | ||||
| export function mapToGroupDTO(group: Group): GroupDTO { | ||||
|     return { | ||||
|         assignment: mapToAssignmentDTO(group.assignment), // ERROR: , group.assignment.within),
 | ||||
|         class: mapToClassDTO(group.assignment.within), | ||||
|         assignment: mapToAssignmentDTO(group.assignment), | ||||
|         groupNumber: group.groupNumber!, | ||||
|         members: group.members.map(mapToStudentDTO), | ||||
|     }; | ||||
|  | @ -27,7 +31,8 @@ export function mapToGroupDTO(group: Group): GroupDTO { | |||
| 
 | ||||
| export function mapToGroupDTOId(group: Group): GroupDTO { | ||||
|     return { | ||||
|         assignment: mapToAssignmentDTOId(group.assignment), | ||||
|         class: group.assignment.within.classId!, | ||||
|         assignment: group.assignment.id!, | ||||
|         groupNumber: group.groupNumber!, | ||||
|     }; | ||||
| } | ||||
|  | @ -37,6 +42,7 @@ export function mapToGroupDTOId(group: Group): GroupDTO { | |||
|  */ | ||||
| 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), | ||||
|  |  | |||
|  | @ -1,10 +1,11 @@ | |||
| import { Question } from '../entities/questions/question.entity.js'; | ||||
| import { mapToStudentDTO } from './student.js'; | ||||
| import { QuestionDTO, QuestionId } from '@dwengo-1/common/interfaces/question'; | ||||
| import { LearningObjectIdentifier } from '@dwengo-1/common/interfaces/learning-content'; | ||||
| import { LearningObjectIdentifierDTO } from '@dwengo-1/common/interfaces/learning-content'; | ||||
| import { LearningObjectIdentifier } from '../entities/content/learning-object-identifier.js'; | ||||
| import { mapToGroupDTOId } from './group.js'; | ||||
| 
 | ||||
| function getLearningObjectIdentifier(question: Question): LearningObjectIdentifier { | ||||
| function getLearningObjectIdentifier(question: Question): LearningObjectIdentifierDTO { | ||||
|     return { | ||||
|         hruid: question.learningObjectHruid, | ||||
|         language: question.learningObjectLanguage, | ||||
|  | @ -12,6 +13,14 @@ function getLearningObjectIdentifier(question: Question): LearningObjectIdentifi | |||
|     }; | ||||
| } | ||||
| 
 | ||||
| export function mapToLearningObjectID(loID: LearningObjectIdentifierDTO): LearningObjectIdentifier { | ||||
|     return { | ||||
|         hruid: loID.hruid, | ||||
|         language: loID.language, | ||||
|         version: loID.version ?? 1, | ||||
|     }; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Convert a Question entity to a DTO format. | ||||
|  */ | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| import { Submission } from '../entities/assignments/submission.entity.js'; | ||||
| import { mapToGroupDTO } from './group.js'; | ||||
| import { mapToStudent, mapToStudentDTO } from './student.js'; | ||||
| import { mapToStudentDTO } from './student.js'; | ||||
| import { SubmissionDTO, SubmissionDTOId } from '@dwengo-1/common/interfaces/submission'; | ||||
| import {getSubmissionRepository} from "../data/repositories"; | ||||
| import {Student} from "../entities/users/student.entity"; | ||||
| import {Group} from "../entities/assignments/group.entity"; | ||||
| 
 | ||||
| export function mapToSubmissionDTO(submission: Submission): SubmissionDTO { | ||||
|     return { | ||||
|  | @ -29,16 +32,14 @@ export function mapToSubmissionDTOId(submission: Submission): SubmissionDTOId { | |||
|     }; | ||||
| } | ||||
| 
 | ||||
| export function mapToSubmission(submissionDTO: SubmissionDTO): Submission { | ||||
|     const submission = new Submission(); | ||||
|     submission.learningObjectHruid = submissionDTO.learningObjectIdentifier.hruid; | ||||
|     submission.learningObjectLanguage = submissionDTO.learningObjectIdentifier.language; | ||||
|     submission.learningObjectVersion = submissionDTO.learningObjectIdentifier.version!; | ||||
|     // Submission.submissionNumber = submissionDTO.submissionNumber;
 | ||||
|     submission.submitter = mapToStudent(submissionDTO.submitter); | ||||
|     // Submission.submissionTime = submissionDTO.time;
 | ||||
|     // Submission.onBehalfOf =  submissionDTO.group!;
 | ||||
|     submission.content = submissionDTO.content; | ||||
| 
 | ||||
|     return submission; | ||||
| export function mapToSubmission(submissionDTO: SubmissionDTO, submitter: Student, onBehalfOf: Group | undefined): Submission { | ||||
|     return getSubmissionRepository().create({ | ||||
|         learningObjectHruid: submissionDTO.learningObjectIdentifier.hruid, | ||||
|         learningObjectLanguage: submissionDTO.learningObjectIdentifier.language, | ||||
|         learningObjectVersion: submissionDTO.learningObjectIdentifier.version || 1, | ||||
|         submitter: submitter, | ||||
|         submissionTime: new Date(), | ||||
|         content: submissionDTO.content, | ||||
|         onBehalfOf: onBehalfOf, | ||||
|     }); | ||||
| } | ||||
|  |  | |||
		Reference in a new issue
	
	 Gerald Schmittinger
						Gerald Schmittinger