Files
omnivore/packages/web/lib/networking/mutations/uploadImportFileMutation.ts
2023-02-27 10:34:12 +08:00

44 lines
1.1 KiB
TypeScript

import { gqlFetcher } from '../networkHelpers'
export enum UploadImportFileType {
URL_LIST = 'URL_LIST',
POCKET = 'POCKET',
MATTER = 'MATTER',
}
type UploadImportFileResponseData = {
uploadImportFile?: UploadImportFileData
}
type UploadImportFileData = {
uploadSignedUrl: string
errorCodes?: unknown[]
}
export async function uploadImportFileRequestMutation(
type: UploadImportFileType,
contentType: string
): Promise<UploadImportFileData | undefined> {
const mutation = `
mutation UploadImportFile($type: UploadImportFileType!, $contentType: String!) {
uploadImportFile(type:$type, contentType:$contentType) {
... on UploadImportFileError {
errorCodes
}
... on UploadImportFileSuccess {
uploadSignedUrl
}
}
}`
const data = await gqlFetcher(mutation, { type, contentType })
console.log('UploadImportFile: ', data)
const output = data as UploadImportFileResponseData | undefined
const error = output?.uploadImportFile?.errorCodes?.find(() => true)
console.log('error: ', error)
if (error) {
throw error
}
return output?.uploadImportFile
}