import type { AnswerData, AnswerDTO, AnswerId } from "@dwengo-1/common/interfaces/answer"; import { BaseController } from "@/controllers/base-controller.ts"; import type { QuestionId } from "@dwengo-1/common/interfaces/question"; import type { LearningObjectIdentifierDTO } from "@dwengo-1/common/interfaces/learning-content"; export interface AnswersResponse { answers: AnswerDTO[] | AnswerId[]; } export interface AnswerResponse { answer: AnswerDTO; } export class AnswerController extends BaseController { loId: LearningObjectIdentifierDTO; sequenceNumber: number; constructor(questionId: QuestionId) { super( `learningObject/${questionId.learningObjectIdentifier.hruid}/:${questionId.learningObjectIdentifier.version}/questions/${questionId.sequenceNumber}/answers`, ); this.loId = questionId.learningObjectIdentifier; this.sequenceNumber = questionId.sequenceNumber; } async getAll(full = true): Promise { return this.get("/", { lang: this.loId.language, full }); } async getBy(seq: number): Promise { return this.get(`/${seq}`, { lang: this.loId.language }); } async create(answerData: AnswerData): Promise { return this.post("/", answerData, { lang: this.loId.language }); } async remove(seq: number): Promise { return this.delete(`/${seq}`, { lang: this.loId.language }); } async update(seq: number, answerData: AnswerData): Promise { return this.put(`/${seq}`, answerData, { lang: this.loId.language }); } }