query functions for response options
This commit is contained in:
parent
51f3469031
commit
e961d53d6c
5 changed files with 106 additions and 17 deletions
85
SurveyFrontend/src/api/AnswerApi.ts
Normal file
85
SurveyFrontend/src/api/AnswerApi.ts
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
import {BASE_URL, createRequestConfig, handleResponse} from "./BaseApi.ts";
|
||||
|
||||
export const getAnswerVariants = async (surveyId: number, questionId: number) => {
|
||||
try{
|
||||
const response = await fetch(`${BASE_URL}/surveys/${surveyId}/questions/${questionId}/answerVariants`, {
|
||||
...createRequestConfig('GET')
|
||||
})
|
||||
return await handleResponse(response)
|
||||
}catch(err){
|
||||
console.error(`Error receiving response options: ${err}`);
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
export const addNewAnswerVariant = async (surveyId: number, questionId: number) => {
|
||||
const token = localStorage.getItem("token");
|
||||
if (!token) {
|
||||
throw new Error("Токен отсутствует");
|
||||
}
|
||||
|
||||
try{
|
||||
const response = await fetch(`${BASE_URL}/surveys/${surveyId}/questions/${questionId}/answerVariants`, {
|
||||
...createRequestConfig('POST'),
|
||||
body: JSON.stringify({
|
||||
surveyId: surveyId,
|
||||
questionId: questionId,
|
||||
}),
|
||||
})
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error(`Ошибка: ${response.status}`);
|
||||
}
|
||||
return await handleResponse(response)
|
||||
}
|
||||
catch(err){
|
||||
console.error(`Error adding a new response option: ${err}`);
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
export const updateAnswerVariant = async (surveyId: number, questionId: number, id: number) => {
|
||||
const token = localStorage.getItem("token");
|
||||
if (!token) {
|
||||
throw new Error("Токен отсутствует");
|
||||
}
|
||||
|
||||
try{
|
||||
const response = await fetch(`${BASE_URL}/surveys/${surveyId}/questions/${questionId}/answerVariants/${id}`, {
|
||||
...createRequestConfig('PUT'),
|
||||
body: JSON.stringify({
|
||||
surveyId: surveyId,
|
||||
questionId: questionId,
|
||||
id: id
|
||||
})
|
||||
})
|
||||
if (!response.ok) {
|
||||
throw new Error(`Ошибка: ${response.status}`);
|
||||
}
|
||||
return await handleResponse(response)
|
||||
}
|
||||
catch(err){
|
||||
console.error(`Error updating the response option: ${err}`);
|
||||
}
|
||||
}
|
||||
|
||||
export const deleteAnswerVariant = async (surveyId: number, questionId: number, id: number) => {
|
||||
const token = localStorage.getItem("token");
|
||||
if (!token) {
|
||||
throw new Error('Токен отсутствует');
|
||||
}
|
||||
try{
|
||||
const response = await fetch(`${BASE_URL}/surveys/${surveyId}/questions/${questionId}/answerVariants/${id}`, {
|
||||
...createRequestConfig('DELETE'),
|
||||
})
|
||||
const responseData = await handleResponse(response);
|
||||
if (response.ok && !responseData){
|
||||
return {success: true};
|
||||
}
|
||||
return responseData;
|
||||
}
|
||||
catch(err){
|
||||
console.error(`Error deleting a answer: ${err}`);
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue