feat: question route als subroute van learning objects
This commit is contained in:
parent
3e2c73320b
commit
3dd1edc95d
6 changed files with 310 additions and 49 deletions
|
@ -1,48 +1,56 @@
|
|||
import { Question } from '../entities/questions/question.entity.js';
|
||||
import {mapToUserDTO, UserDTO} from "./user.js";
|
||||
import {LearningObjectIdentifier} from "../entities/content/learning-object-identifier.js";
|
||||
import {Teacher} from "../entities/users/teacher.entity";
|
||||
|
||||
export interface QuestionDTO {
|
||||
learningObjectHruid: string;
|
||||
learningObjectLanguage: string;
|
||||
learningObjectVersion: string;
|
||||
sequenceNumber: number;
|
||||
authorUsername: string;
|
||||
timestamp: string;
|
||||
learningObjectIdentifier: LearningObjectIdentifier;
|
||||
sequenceNumber?: number;
|
||||
author: UserDTO;
|
||||
timestamp?: string;
|
||||
content: string;
|
||||
endpoints?: {
|
||||
classes: string;
|
||||
questions: string;
|
||||
invitations: string;
|
||||
groups: string;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert a Question entity to a DTO format.
|
||||
*/
|
||||
export function mapToQuestionDTO(question: Question): QuestionDTO {
|
||||
const learningObjectIdentifier = {
|
||||
hruid: question.learningObjectHruid,
|
||||
language: question.learningObjectLanguage,
|
||||
version: question.learningObjectVersion
|
||||
}
|
||||
|
||||
return {
|
||||
learningObjectHruid: question.learningObjectHruid,
|
||||
learningObjectLanguage: question.learningObjectLanguage,
|
||||
learningObjectVersion: question.learningObjectVersion,
|
||||
learningObjectIdentifier,
|
||||
sequenceNumber: question.sequenceNumber,
|
||||
authorUsername: question.author.username,
|
||||
author: question.author,
|
||||
timestamp: question.timestamp.toISOString(),
|
||||
content: question.content,
|
||||
};
|
||||
}
|
||||
|
||||
export interface QuestionId {
|
||||
learningObjectHruid: string;
|
||||
learningObjectLanguage: string;
|
||||
learningObjectVersion: string;
|
||||
learningObjectIdentifier: LearningObjectIdentifier;
|
||||
sequenceNumber: number;
|
||||
}
|
||||
|
||||
export function mapToQuestionId(question: QuestionDTO): QuestionId {
|
||||
return {
|
||||
learningObjectHruid: question.learningObjectHruid,
|
||||
learningObjectLanguage: question.learningObjectLanguage,
|
||||
learningObjectVersion: question.learningObjectVersion,
|
||||
learningObjectIdentifier: question.learningObjectIdentifier,
|
||||
sequenceNumber: question.sequenceNumber,
|
||||
};
|
||||
}
|
||||
|
||||
export function mapToQuestion(questionDTO: QuestionDTO): Question {
|
||||
const question = new Question();
|
||||
question.author = mapToUserDTO<Teacher>(questionDTO.author);
|
||||
question.learningObjectHruid = questionDTO.learningObjectIdentifier.hruid;
|
||||
question.learningObjectLanguage = questionDTO.learningObjectIdentifier.language;
|
||||
question.learningObjectVersion = questionDTO.learningObjectIdentifier.version;
|
||||
question.content = questionDTO.content;
|
||||
question.sequenceNumber = questionDTO.sequenceNumber;
|
||||
question.timestamp = questionDTO.timestamp;
|
||||
|
||||
return question;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue