add export to notion button

This commit is contained in:
Hongbo Wu
2024-03-21 11:45:48 +08:00
parent 390d12eea1
commit 0ac4800920
3 changed files with 126 additions and 91 deletions

View File

@ -0,0 +1,43 @@
import { gqlFetcher } from '../networkHelpers'
export interface Task {
id: string
state: string
createdAt: Date
name: string
runningTime: number
progress: number
failedReason?: string
}
interface ExportToIntegrationDataResponseData {
exportToIntegration: {
Task: Task
errorCodes?: string[]
}
}
export async function exportToIntegrationMutation(integrationId: string) {
const mutation = `
mutation ExportToIntegration($integrationId: ID!) {
exportToIntegration(integrationId:$integrationId) {
... on ExportToIntegrationError {
errorCodes
}
... on ExportToIntegrationSuccess {
Task {
id
}
}
}
}`
const data = await gqlFetcher(mutation, { integrationId })
const output = data as ExportToIntegrationDataResponseData
const error = output.exportToIntegration.errorCodes?.find(() => true)
if (error) {
throw error
}
return output.exportToIntegration.Task
}