show an error message on web if notion database is not found
This commit is contained in:
@ -23,9 +23,17 @@ type SetIntegrationResult = {
|
||||
setIntegration: SetIntegrationData
|
||||
}
|
||||
|
||||
export enum SetIntegrationErrorCode {
|
||||
AlreadyExists = 'ALREADY_EXISTS',
|
||||
BadRequest = 'BAD_REQUEST',
|
||||
InvalidToken = 'INVALID_TOKEN',
|
||||
NotFound = 'NOT_FOUND',
|
||||
Unauthorized = 'UNAUTHORIZED',
|
||||
}
|
||||
|
||||
type SetIntegrationData = {
|
||||
integration: Integration
|
||||
errorCodes?: string[]
|
||||
errorCodes?: SetIntegrationErrorCode[]
|
||||
}
|
||||
|
||||
type Integration = {
|
||||
@ -66,8 +74,8 @@ export async function setIntegrationMutation(
|
||||
const data = (await gqlFetcher(mutation, { input })) as SetIntegrationResult
|
||||
const error = data.setIntegration.errorCodes?.find(() => true)
|
||||
if (error) {
|
||||
if (error === 'INVALID_TOKEN') throw 'Your token is invalid.'
|
||||
throw error
|
||||
throw new Error(error)
|
||||
}
|
||||
|
||||
return data.setIntegration.integration
|
||||
}
|
||||
|
||||
@ -13,7 +13,10 @@ import {
|
||||
Task,
|
||||
TaskState,
|
||||
} from '../../../lib/networking/mutations/exportToIntegrationMutation'
|
||||
import { setIntegrationMutation } from '../../../lib/networking/mutations/setIntegrationMutation'
|
||||
import {
|
||||
SetIntegrationErrorCode,
|
||||
setIntegrationMutation,
|
||||
} from '../../../lib/networking/mutations/setIntegrationMutation'
|
||||
import { apiFetcher } from '../../../lib/networking/networkHelpers'
|
||||
import { useGetIntegrationQuery } from '../../../lib/networking/queries/useGetIntegrationQuery'
|
||||
import { showSuccessToast } from '../../../lib/toastHelpers'
|
||||
@ -86,6 +89,13 @@ export default function Notion(): JSX.Element {
|
||||
revalidate()
|
||||
messageApi.success('Notion settings updated successfully.')
|
||||
} catch (error) {
|
||||
if (
|
||||
error instanceof Error &&
|
||||
error.message === SetIntegrationErrorCode.NotFound
|
||||
) {
|
||||
return messageApi.error('Notion database not found. Please make sure if you are using database ID instead of page ID.')
|
||||
}
|
||||
|
||||
messageApi.error('There was an error updating Notion settings.')
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user