feat: question answer frontend controller en queries
This commit is contained in:
parent
7f7a4fe936
commit
09a11589d2
6 changed files with 229 additions and 8 deletions
40
frontend/src/controllers/answers.ts
Normal file
40
frontend/src/controllers/answers.ts
Normal file
|
@ -0,0 +1,40 @@
|
|||
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";
|
||||
|
||||
|
||||
export interface AnswersResponse {
|
||||
answers: AnswerDTO[] | AnswerId[]
|
||||
}
|
||||
|
||||
export interface AnswerResponse {
|
||||
answer: AnswerDTO
|
||||
}
|
||||
|
||||
export class AnswerController extends BaseController {
|
||||
constructor(questionId: QuestionId) {
|
||||
this.loId = questionId.learningObjectIdentifier;
|
||||
this.sequenceNumber = questionId.sequenceNumber;
|
||||
super(`learningObject/${loId.hruid}/:${loId.version}/questions/${this.sequenceNumber}/answers`)
|
||||
}
|
||||
|
||||
async getAll(full = true): Promise<AnswersResponse> {
|
||||
return this.get<AnswersResponse>("/", {lang: this.loId.lang, full});
|
||||
}
|
||||
|
||||
async getBy(seq: number): Promise<AnswerResponse> {
|
||||
return this.get<AnswerResponse>(`/${seq}`, {lang: this.loId.lang});
|
||||
}
|
||||
|
||||
async create(answerData: AnswerData) {
|
||||
return this.post<AnswerResponse>("/", answerData, {lang: this.loId.lang});
|
||||
}
|
||||
|
||||
async remove(seq: number): Promise<AnswerResponse> {
|
||||
return this.delete<AnswerResponse>(`/${seq}`, {lang: this.loId.lang});
|
||||
}
|
||||
|
||||
async update(seq: number, answerData: AnswerData): Promise<AnswerResponse> {
|
||||
return this.put<AnswerResponse>(`/${seq}`, answerData,{lang: this.loId.lang});
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue