33 lines
926 B
TypeScript
33 lines
926 B
TypeScript
|
import { makeDeleteRequest, makeGetRequest, makePostRequest } from "./api";
|
||
|
|
||
|
export const enum QuizQuestion {
|
||
|
UL,
|
||
|
UR,
|
||
|
DL,
|
||
|
DR
|
||
|
};
|
||
|
|
||
|
export type Question = {
|
||
|
id: number;
|
||
|
category: string | null;
|
||
|
type: string | null; // TODO: make a TS type for every question type
|
||
|
text: string;
|
||
|
answer: string | boolean | QuizQuestion;
|
||
|
}
|
||
|
|
||
|
export const getQuestion = async (id: number): Promise<Question> => {
|
||
|
return makeGetRequest( `questions/${id}/` );
|
||
|
}
|
||
|
|
||
|
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}` );
|
||
|
}
|