fix: gebruik create question functie
This commit is contained in:
		
							parent
							
								
									70ba819e46
								
							
						
					
					
						commit
						e3e1fc3f05
					
				
					 4 changed files with 23 additions and 23 deletions
				
			
		|  | @ -5,6 +5,10 @@ | |||
| // Load .env file
 | ||||
| // Dotenv.config();
 | ||||
| 
 | ||||
| import {Language} from "./entities/content/language.js"; | ||||
| 
 | ||||
| export const DWENGO_API_BASE = 'https://dwengo.org/backend/api'; | ||||
| 
 | ||||
| export const FALLBACK_LANG = 'nl'; | ||||
| export const FALLBACK_LANG: Language = Language.Dutch; | ||||
| 
 | ||||
| export const FALLBACK_SEQ_NUM = 1; | ||||
|  |  | |||
|  | @ -104,7 +104,10 @@ export async function createQuestionHandler(req: Request, res: Response): Promis | |||
| } | ||||
| 
 | ||||
| export async function deleteQuestionHandler(req: Request, res: Response): Promise<void> { | ||||
|     const questionId = getQuestionId(res, req) | ||||
|     const questionId = getQuestionId(req, res); | ||||
| 
 | ||||
|     if (!questionId) | ||||
|         return | ||||
| 
 | ||||
|     const question = await deleteQuestion(questionId); | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,7 +1,6 @@ | |||
| import { Question } from '../entities/questions/question.entity.js'; | ||||
| import {mapToUserDTO, UserDTO} from "./user.js"; | ||||
| import {UserDTO} from "./user.js"; | ||||
| import {LearningObjectIdentifier} from "../entities/content/learning-object-identifier.js"; | ||||
| import {Teacher} from "../entities/users/teacher.entity"; | ||||
| 
 | ||||
| export interface QuestionDTO { | ||||
|     learningObjectIdentifier: LearningObjectIdentifier; | ||||
|  | @ -23,7 +22,7 @@ export function mapToQuestionDTO(question: Question): QuestionDTO { | |||
| 
 | ||||
|     return { | ||||
|         learningObjectIdentifier, | ||||
|         sequenceNumber: question.sequenceNumber, | ||||
|         sequenceNumber: question.sequenceNumber!, | ||||
|         author: question.author, | ||||
|         timestamp: question.timestamp.toISOString(), | ||||
|         content: question.content, | ||||
|  | @ -38,19 +37,7 @@ export interface QuestionId { | |||
| export function mapToQuestionId(question: QuestionDTO): QuestionId { | ||||
|     return { | ||||
|         learningObjectIdentifier: question.learningObjectIdentifier, | ||||
|         sequenceNumber: question.sequenceNumber, | ||||
|         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; | ||||
| } | ||||
|  |  | |||
|  | @ -1,10 +1,12 @@ | |||
| import {getAnswerRepository, getQuestionRepository} from "../data/repositories.js"; | ||||
| import {mapToQuestion, mapToQuestionDTO, mapToQuestionId, QuestionDTO, QuestionId} from "../interfaces/question.js"; | ||||
| import {mapToQuestionDTO, mapToQuestionId, QuestionDTO, QuestionId} from "../interfaces/question.js"; | ||||
| import {Question} from "../entities/questions/question.entity.js"; | ||||
| import {Answer} from "../entities/questions/answer.entity.js"; | ||||
| import {mapToAnswerDTO, mapToAnswerId} from "../interfaces/answer.js"; | ||||
| import {QuestionRepository} from "../data/questions/question-repository.js"; | ||||
| import {LearningObjectIdentifier} from "../entities/content/learning-object-identifier.js"; | ||||
| import {mapToUser} from "../interfaces/user.js"; | ||||
| import {Student} from "../entities/users/student.entity.js"; | ||||
| 
 | ||||
| export async function getAllQuestions( | ||||
|     id: LearningObjectIdentifier, full: boolean | ||||
|  | @ -69,16 +71,20 @@ export async function getAnswersByQuestion(questionId: QuestionId, full: boolean | |||
| 
 | ||||
| export async function createQuestion(questionDTO: QuestionDTO) { | ||||
|     const questionRepository = getQuestionRepository(); | ||||
|     const question = mapToQuestion(questionDTO); | ||||
| 
 | ||||
|     const author = mapToUser<Student>(questionDTO.author, new Student()) | ||||
| 
 | ||||
|     try { | ||||
|         const newQuestion = questionRepository.create(question) | ||||
|         await questionRepository.save(newQuestion); | ||||
|         await questionRepository.createQuestion({ | ||||
|             loId: questionDTO.learningObjectIdentifier, | ||||
|             author, | ||||
|             content: questionDTO.content } | ||||
|         ); | ||||
|     } catch (e) { | ||||
|         return null | ||||
|     } | ||||
| 
 | ||||
|     return newQuestion; | ||||
|     return questionDTO; | ||||
| } | ||||
| 
 | ||||
| export async function deleteQuestion(questionId: QuestionId) { | ||||
|  |  | |||
		Reference in a new issue
	
	 Gabriellvl
						Gabriellvl