Skip to content

Commit

Permalink
feat(core): add update customer mutation (#776)
Browse files Browse the repository at this point in the history
  • Loading branch information
yurytut1993 committed Apr 18, 2024
1 parent bfde483 commit 656693e
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 0 deletions.
5 changes: 5 additions & 0 deletions .changeset/bright-plants-lick.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@bigcommerce/catalyst-core": patch
---

add update customer mutation
56 changes: 56 additions & 0 deletions apps/core/client/mutations/update-customer.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
import { getSessionCustomerId } from '~/auth';

import { client } from '..';
import { graphql, VariablesOf } from '../graphql';

const UPDATE_CUSTOMER_MUTATION = graphql(`
mutation updateCustomer($input: UpdateCustomerInput!) {
customer {
updateCustomer(input: $input) {
customer {
firstName
lastName
}
errors {
__typename
... on EmailAlreadyInUseError {
message
}
... on ValidationError {
message
}
... on CustomerDoesNotExistError {
message
}
... on CustomerNotLoggedInError {
message
}
}
}
}
}
`);

type Variables = VariablesOf<typeof UPDATE_CUSTOMER_MUTATION>;
type Input = Variables['input'];

interface UpdateCustomer {
formFields: Input;
reCaptchaToken?: string;
}

export const updateCustomer = async ({ formFields, reCaptchaToken }: UpdateCustomer) => {
const customerId = await getSessionCustomerId();

const response = await client.fetch({
document: UPDATE_CUSTOMER_MUTATION,
customerId,
fetchOptions: { cache: 'no-store' },
variables: {
input: formFields,
...(reCaptchaToken && { reCaptchaV2: { token: reCaptchaToken } }),
},
});

return response.data.customer.updateCustomer;
};

0 comments on commit 656693e

Please sign in to comment.