diff --git a/src/__data__/api/api.ts b/src/__data__/api/api.ts index 41b0821..90a649d 100644 --- a/src/__data__/api/api.ts +++ b/src/__data__/api/api.ts @@ -17,6 +17,11 @@ const normalizeBaseUrl = (url: string) => (url.endsWith('/') ? url.slice(0, -1) const backendBaseUrl = normalizeBaseUrl(getConfigValue('challenge.api')) const challengeBaseUrl = `${backendBaseUrl}/challenge` +interface ApiResponse { + success: boolean + body: T +} + export const api = createApi({ reducerPath: 'challengeApi', baseQuery: fetchBaseQuery({ @@ -34,12 +39,14 @@ export const api = createApi({ method: 'POST', body, }), + transformResponse: (response: ApiResponse) => response.body, }), getChains: builder.query({ query: () => ({ url: '/chains', method: 'GET', }), + transformResponse: (response: ApiResponse) => response.body, providesTags: ['Chains'], }), getChain: builder.query({ @@ -47,6 +54,7 @@ export const api = createApi({ url: `/chain/${chainId}`, method: 'GET', }), + transformResponse: (response: ApiResponse) => response.body, providesTags: (_result, _error, arg) => [{ type: 'Chain', id: arg }], }), submitSolution: builder.mutation({ @@ -55,6 +63,7 @@ export const api = createApi({ method: 'POST', body, }), + transformResponse: (response: ApiResponse) => response.body, invalidatesTags: ['Queue', 'Submissions', 'UserStats'], }), checkQueueStatus: builder.query({ @@ -62,6 +71,7 @@ export const api = createApi({ url: `/check-status/${queueId}`, method: 'GET', }), + transformResponse: (response: ApiResponse) => response.body, providesTags: (_result, _error, arg) => [{ type: 'Queue', id: arg }], }), getUserStats: builder.query({ @@ -69,6 +79,7 @@ export const api = createApi({ url: `/user/${userId}/stats`, method: 'GET', }), + transformResponse: (response: ApiResponse) => response.body, providesTags: (_result, _error, arg) => [{ type: 'UserStats', id: arg }], }), getUserSubmissions: builder.query({ @@ -76,6 +87,7 @@ export const api = createApi({ url: `/user/${userId}/submissions${taskId ? `?taskId=${taskId}` : ''}`, method: 'GET', }), + transformResponse: (response: ApiResponse) => response.body, providesTags: (_result, _error, arg) => [{ type: 'Submissions', id: arg.userId }], }), getSystemStats: builder.query({ @@ -83,6 +95,7 @@ export const api = createApi({ url: '/stats', method: 'GET', }), + transformResponse: (response: ApiResponse) => response.body, providesTags: ['SystemStats'], }), getTask: builder.query({ @@ -90,6 +103,7 @@ export const api = createApi({ url: `/task/${taskId}`, method: 'GET', }), + transformResponse: (response: ApiResponse) => response.body, providesTags: (_result, _error, arg) => [{ type: 'Submissions', id: `task-${arg}` }], }), getAllSubmissions: builder.query({ @@ -97,6 +111,7 @@ export const api = createApi({ url: '/submissions', method: 'GET', }), + transformResponse: (response: ApiResponse) => response.body, providesTags: ['Submissions'], }), }),