|
|
|
|
@ -237,29 +237,24 @@ const baseFetch = <T>(
|
|
|
|
|
switch (res.status) {
|
|
|
|
|
case 401: {
|
|
|
|
|
if (isPublicAPI) {
|
|
|
|
|
Toast.notify({ type: 'error', message: 'Invalid token' })
|
|
|
|
|
return bodyJson.then((data: T) => Promise.reject(data))
|
|
|
|
|
}
|
|
|
|
|
const loginUrl = `${globalThis.location.origin}/signin`
|
|
|
|
|
if (IS_CE_EDITION) {
|
|
|
|
|
bodyJson.then((data: ResponseError) => {
|
|
|
|
|
if (data.code === 'not_setup') {
|
|
|
|
|
globalThis.location.href = `${globalThis.location.origin}/install`
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if (location.pathname === '/signin') {
|
|
|
|
|
bodyJson.then((data: ResponseError) => {
|
|
|
|
|
Toast.notify({ type: 'error', message: data.message })
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
globalThis.location.href = loginUrl
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return bodyJson.then((data: ResponseError) => {
|
|
|
|
|
Toast.notify({ type: 'error', message: data.message })
|
|
|
|
|
return Promise.reject(data)
|
|
|
|
|
})
|
|
|
|
|
return Promise.reject(Error('Unauthorized'))
|
|
|
|
|
}
|
|
|
|
|
globalThis.location.href = loginUrl
|
|
|
|
|
const loginUrl = `${globalThis.location.origin}/signin`
|
|
|
|
|
bodyJson.then((data: ResponseError) => {
|
|
|
|
|
if (data.code === 'not_setup' && IS_CE_EDITION)
|
|
|
|
|
globalThis.location.href = `${globalThis.location.origin}/install`
|
|
|
|
|
else if (location.pathname !== '/signin' || !IS_CE_EDITION)
|
|
|
|
|
globalThis.location.href = loginUrl
|
|
|
|
|
else
|
|
|
|
|
Toast.notify({ type: 'error', message: data.message })
|
|
|
|
|
}).catch(() => {
|
|
|
|
|
// Handle any other errors
|
|
|
|
|
globalThis.location.href = loginUrl
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
case 403:
|
|
|
|
|
|