next-app/app/lib/question.ts

44 lines
1.1 KiB
TypeScript
Raw Normal View History

2024-06-01 15:47:53 +03:00
import { makeDeleteRequest, makeGetRequest, makePostRequest } from "./api";
export const enum QuizQuestion {
UL,
UR,
DL,
DR
};
export const enum AnswerType {
Unset,
Right,
Wrong
};
2024-06-01 15:47:53 +03:00
export type Question = {
id: number;
category: string | null;
type?: string; // TODO: make a TS type for every question type
2024-06-01 15:47:53 +03:00
text: string;
answer: string | boolean | QuizQuestion;
answered?: AnswerType;
2024-06-01 15:47:53 +03:00
}
export const getQuestion = async (id: number): Promise<Question> => {
return makeGetRequest( `questions/${id}/` );
}
export const getQuestions = async (): Promise<Question[]> => {
return makeGetRequest( `questions/` );
}
2024-06-01 15:47:53 +03:00
export const addQuestion = async (question: Question): Promise<Question> => {
console.log( `adding question ${JSON.stringify( question)}` );
return makePostRequest( `questions`, question );
}
export const editQuestion = async (question: Question): Promise<Question> => {
return makePostRequest( `questions/${question.id}`, question );
}
export const deleteQuestion = async (id: number): Promise<Question> => {
return makeDeleteRequest( `questions/${id}` );
}