Files
omnivore/packages/web/lib/networking/mutations/createNewsletterEmailMutation.ts
2022-03-30 20:13:06 -07:00

40 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
console.log('created email', data)
return data.errorCodes ? undefined : data.createNewsletterEmail.newsletterEmail.id
} catch (error) {
console.log('createNewsletterEmailMutation error', error)
return undefined
}
}