omnivore/packages/web/lib/networking/mutations/createNewsletterEmailMutation.ts

40 lines
1 KiB
TypeScript
Raw Normal View History

2022-02-11 17:24:33 +00:00
import { gql } from 'graphql-request'
import { gqlFetcher } from '../networkHelpers'
import { NewsletterEmail } from '../queries/useGetNewsletterEmailsQuery'
type CreateNewsletterEmailResult = {
createNewsletterEmail: CreateNewsletterEmail
errorCodes?: unknown[]
}
type CreateNewsletterEmail = {
newsletterEmail: NewsletterEmail
}
2022-02-11 17:24:33 +00:00
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
2022-02-11 17:24:33 +00:00
console.log('created email', data)
return data.errorCodes ? undefined : data.createNewsletterEmail.newsletterEmail.id
2022-02-11 17:24:33 +00:00
} catch (error) {
console.log('createNewsletterEmailMutation error', error)
return undefined
}
}