Files
omnivore/packages/web/lib/networking/mutations/createNewsletterEmailMutation.ts
2023-09-04 15:18:23 +08:00

43 lines
1.0 KiB
TypeScript

import { gql } from 'graphql-request'
import { gqlFetcher } from '../networkHelpers'
import { NewsletterEmail } from '../queries/useGetNewsletterEmailsQuery'
type CreateNewsletterEmailResult = {
createNewsletterEmail: CreateNewsletterEmail
errorCodes?: unknown[]
}
type CreateNewsletterEmail = {
newsletterEmail: NewsletterEmail
}
export async function createNewsletterEmailMutation(): Promise<
string | undefined
> {
const mutation = gql`
mutation createNewsletterEmailMutation {
createNewsletterEmail {
... on CreateNewsletterEmailSuccess {
newsletterEmail {
id
address
}
}
... on CreateNewsletterEmailError {
errorCodes
}
}
}
`
try {
const data = (await gqlFetcher(mutation)) as CreateNewsletterEmailResult
return data.errorCodes
? undefined
: data.createNewsletterEmail.newsletterEmail.id
} catch (error) {
console.log('createNewsletterEmailMutation error', error)
return undefined
}
}