Skip to content

Commit

Permalink
safer error handling in interceptors to avoid crash when request is c…
Browse files Browse the repository at this point in the history
…anceled

Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
  • Loading branch information
julien-nc committed Dec 8, 2022
1 parent 8fbb0d5 commit e412396
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 7 deletions.
5 changes: 3 additions & 2 deletions lib/interceptors/csrf-token.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@ import { generateUrl } from '@nextcloud/router'
const RETRY_KEY = Symbol('csrf-retry')

export const onError = axios => async (error) => {
const { config, response, request: { responseURL } } = error
const { status } = response
const { config, response, request } = error
const responseURL = request?.responseURL
const status = response?.status

if (status === 412
&& response?.data?.message === 'CSRF check failed'
Expand Down
8 changes: 5 additions & 3 deletions lib/interceptors/maintenance-mode.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
const RETRY_DELAY_KEY = Symbol('retryDelay')

export const onError = axios => async (error) => {
const { config, response, request: { responseURL } } = error
const { status, headers } = response
const { config, response, request } = error
const responseURL = request?.responseURL
const status = response?.status
const headers = response?.headers

/**
* Retry requests if they failed due to maintenance mode
Expand All @@ -29,4 +31,4 @@ export const onError = axios => async (error) => {
}

return Promise.reject(error)
}
}
5 changes: 3 additions & 2 deletions lib/interceptors/not-logged-in.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
export const onError = async (error) => {
const { config, response, request: { responseURL } } = error
const { status } = response
const { config, response, request } = error
const responseURL = request?.responseURL
const status = response?.status

if (status === 401
&& response?.data?.message === 'Current user is not logged in'
Expand Down

0 comments on commit e412396

Please sign in to comment.