вернула запрос 100 вопросов
Some checks failed
Deploy / DeployService (push) Has been cancelled
Deploy / CreateImage (push) Has been cancelled

This commit is contained in:
Nastya 2025-06-01 14:14:27 +03:00
parent 3a8865713a
commit d675530480

@ -76,7 +76,53 @@ export const publicationMakeRequest = ({ url, body }: PublicationMakeRequestPara
let globalStatus: string | null = null; let globalStatus: string | null = null;
let isFirstRequest = true; let isFirstRequest = true;
export async function getData({ quizId, page }: { quizId: string; page?: number }): Promise<{ export async function getData({ quizId }: { quizId: string }): Promise<{
data: GetQuizDataResponse | null;
isRecentlyCompleted: boolean;
error?: AxiosError;
}> {
try {
const { data, headers } = await axios<GetQuizDataResponse>(
domain + `/answer/v1.0.0/settings${window.location.search}`,
{
method: "POST",
headers: {
"X-Sessionkey": SESSIONS,
"Content-Type": "application/json",
DeviceType: DeviceType,
Device: Device,
OS: OSDevice,
Browser: userAgent,
},
data: {
quiz_id: quizId,
limit: 100,
page: 0,
need_config: true,
},
}
);
const sessions = JSON.parse(localStorage.getItem("sessions") || "{}");
//Тут ещё проверка на антифрод без парса конфига. Нам не интересно время если не нужно запрещать проходить чаще чем в сутки
if (typeof sessions[quizId] === "number" && data.settings.cfg.includes('antifraud":true')) {
// unix время. Если меньше суток прошло - выводить ошибку, иначе пустить дальше
if (Date.now() - sessions[quizId] < 86400000) {
return { data, isRecentlyCompleted: true };
}
}
SESSIONS = headers["x-sessionkey"] ? headers["x-sessionkey"] : SESSIONS;
return { data, isRecentlyCompleted: false };
} catch (nativeError) {
const error = nativeError as AxiosError;
return { data: null, isRecentlyCompleted: false, error: error };
}
}
export async function getDataSingle({ quizId, page }: { quizId: string; page?: number }): Promise<{
data: GetQuizDataResponse | null; data: GetQuizDataResponse | null;
isRecentlyCompleted: boolean; isRecentlyCompleted: boolean;
error?: AxiosError; error?: AxiosError;
@ -231,7 +277,7 @@ export async function getQuizDataAI(quizId: string) {
while (resultRetryCount < maxRetries) { while (resultRetryCount < maxRetries) {
try { try {
console.log(`[getQuizDataAI] Attempt ${resultRetryCount + 1} for result questions, page: ${page}`); console.log(`[getQuizDataAI] Attempt ${resultRetryCount + 1} for result questions, page: ${page}`);
const response = await getData({ quizId, page }); const response = await getData({ quizId });
console.log("[getQuizDataAI] Response from getData:", response); console.log("[getQuizDataAI] Response from getData:", response);
if (response.error) { if (response.error) {
@ -286,7 +332,7 @@ export async function getQuizDataAI(quizId: string) {
try { try {
console.log(`[getQuizDataAI] Empty items retry ${emptyRetryCount + 1}`); console.log(`[getQuizDataAI] Empty items retry ${emptyRetryCount + 1}`);
await new Promise((resolve) => setTimeout(resolve, 1000)); await new Promise((resolve) => setTimeout(resolve, 1000));
const response = await getData({ quizId, page }); const response = await getData({ quizId });
if (response.error) { if (response.error) {
console.error("[getQuizDataAI] Error in empty items check:", response.error); console.error("[getQuizDataAI] Error in empty items check:", response.error);