frontPanel/src/api/result.ts
2024-03-26 22:32:28 +04:00

96 lines
2.3 KiB
TypeScript

import { makeRequest } from "@frontend/kitui";
import { RawResult } from "@model/result/result";
interface IResultListBody {
to: number;
from: string;
new: boolean;
page: number;
limit: number;
}
export interface IAnswerResult {
Browser: string;
CreatedAt: string;
Deleted: boolean;
Device: string;
DeviceType: string;
Email: string;
Fingerprint: string;
IP: string;
Id: number;
OS: string;
QuizId: number;
Result: boolean;
Session: string;
Start: boolean;
content: string;
new: boolean;
question_id: number;
}
async function getResultList(quizId: number, page: number, body: any) {
return makeRequest<IResultListBody, RawResult>({
url: process.env.REACT_APP_DOMAIN + `/squiz/results/getResults/${quizId}`,
method: "POST",
body: { page: page, limit: 10, ...body },
});
}
function deleteResult(resultId: number) {
return makeRequest<unknown, unknown>({
url: process.env.REACT_APP_DOMAIN + `/squiz/results/delete/${resultId}`,
body: {},
method: "DELETE",
});
}
// export const obsolescenceResult = async (idResultArray: string[]) => {
// try {
// const response = await makeRequest<unknown, unknown>({
// url: process.env.REACT_APP_DOMAIN + `/squiz/result/seen`,
// body: {
// answers: idResultArray,
// },
// method: "PATCH",
// });
// return response;
// } catch (e) {
// console.log("ошибка", e);
// }
// };
function obsolescenceResult(idResultArray: number[]) {
return makeRequest<unknown, unknown>({
url: process.env.REACT_APP_DOMAIN + `/squiz/result/seen`,
body: {
answers: idResultArray,
},
method: "PATCH",
});
}
function getAnswerResultList(resultId: number) {
return makeRequest<unknown, IAnswerResult[]>({
url: process.env.REACT_APP_DOMAIN + `/squiz/result/${resultId}`,
method: "GET",
});
}
function AnswerResultListEx(quizId: number, body: any) {
return makeRequest<unknown, unknown>({
responseType: "blob",
url: process.env.REACT_APP_DOMAIN + `/squiz/results/${quizId}/export`,
method: "POST",
body: body,
});
}
export const resultApi = {
getList: getResultList,
delete: deleteResult,
getAnswerList: getAnswerResultList,
export: AnswerResultListEx,
obsolescence: obsolescenceResult,
};