import { makeDeleteRequest, makeGetRequest, makePostRequest } from "./api";

export const enum QuizQuestion {
  UL,
  UR,
  DL, 
  DR
};

export const enum AnswerType {
  Unset,
  Right,
  Wrong
};

export type Question = {
  id: number;
  category: string | null;
  type?: string; // TODO: make a TS type for every question type
  text: string;
  answer: string | boolean | QuizQuestion;
  answered?: AnswerType;
} 

export const getQuestion = async (id: number): Promise<Question> => {
  return makeGetRequest( `questions/${id}/` );
}

export const getQuestions = async (): Promise<Question[]> => {
  return makeGetRequest( `questions/` );  
}

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}` );
}