fix(client): retry failed rtk queries (#63976)

This commit is contained in:
Shaun Hamilton
2025-11-19 10:30:34 -06:00
committed by GitHub
parent e1cf5c2650
commit 971134863d
+25 -15
View File
@@ -1,5 +1,5 @@
import cookies from 'browser-cookies';
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';
import { createApi, fetchBaseQuery, retry } from '@reduxjs/toolkit/query/react';
import envData from '../../config/env.json';
import type {
@@ -453,13 +453,18 @@ export type GetExamsResponse = Array<{
export const examAttempts = createApi({
reducerPath: 'exam-attempts',
baseQuery: fetchBaseQuery({
baseUrl: apiLocation,
headers: {
'CSRF-Token': getCSRFToken()
},
credentials: 'include'
}),
baseQuery: retry(
fetchBaseQuery({
baseUrl: apiLocation,
prepareHeaders(headers) {
headers.set('CSRF-Token', getCSRFToken());
return headers;
},
credentials: 'include'
}),
// Retry in the case this is the initial request - csrf is not set yet, and initial returns 403
{ maxRetries: 2 }
),
endpoints: build => ({
getExamAttemptsByExamId: build.mutation<Attempt[], string>({
query: examId => `/user/exam-environment/exams/${examId}/attempts`
@@ -476,13 +481,18 @@ export const examAttempts = createApi({
export const examEnvironmentAuthorizationTokenApi = createApi({
reducerPath: 'exam-environment-authorization-token',
baseQuery: fetchBaseQuery({
baseUrl: apiLocation,
headers: {
'CSRF-Token': getCSRFToken()
},
credentials: 'include'
}),
baseQuery: retry(
fetchBaseQuery({
baseUrl: apiLocation,
prepareHeaders(headers) {
headers.set('CSRF-Token', getCSRFToken());
return headers;
},
credentials: 'include'
}),
// Retry in the case this is the initial request - csrf is not set yet, and initial returns 403
{ maxRetries: 2 }
),
endpoints: build => ({
postGenerateExamEnvironmentAuthorizationToken: build.mutation<
ExamTokenResponse,