import { getClientWithToken } from '../apollo/client'; import * as GQL from '../types'; import { type VariablesOf } from '@graphql-typed-document-node/core'; export class RegistrationService { async createCustomer(variables: VariablesOf) { const { mutate } = await getClientWithToken(); const mutationResult = await mutate({ mutation: GQL.CreateCustomerDocument, variables, }); const error = mutationResult.errors?.at(0); if (error) throw new Error(error.message); return mutationResult.data; } async getCustomer(variables: VariablesOf) { const { query } = await getClientWithToken(); const result = await query({ query: GQL.GetCustomerDocument, variables, }); const customer = result.data.customers.at(0); return { customer }; } async updateCustomer(variables: VariablesOf) { const { mutate } = await getClientWithToken(); const mutationResult = await mutate({ mutation: GQL.UpdateCustomerDocument, variables, }); const error = mutationResult.errors?.at(0); if (error) throw new Error(error.message); return mutationResult.data; } }