AlokaiA
Alokai2y ago
ALI

custom query to change customer password

Hi, I'm trying to change password for an existing cutomer using graphql mutations. I have a vsf2nuxt3 app and I just implemented user authentication. Now, I want to implement change password feature for a user. I am trying changeCustomerPassword method from magento sdk.
I am able to change password successfully but graphql returns me the fields that I do not require I want it to return the fields that I have written in my custom query. below is my code:

const changePasswordInput: ChangeCustomerPasswordInput = {
        currentPassword: formData.value.currentPassword,
        // eslint-disable-next-line unicorn/no-keyword-prefix
        newPassword: formData.value.freshPassword,
      };

      try {
        const { data } = await useAsyncData(() =>
          useSdk().magento.changeCustomerPassword(changePasswordInput, {
            customHeaders,
            customQuery: passwordChangeCustomQuery,
          }),
        );
        console.log(data, 'password changed!');
        if (data.value?.errors) {
          state.value.error = data.value.errors?.[0].message;
        }
      } catch (error) {
        state.value.error = error as string;
      }


custom query:

export const passwordChangeCustomQuery: {
  changeCustomerPassword: string;
  metadata?: { fields: string };
} = {
  changeCustomerPassword: 'password-change-custom-mutation',
  metadata: {
    fields: `
        email
        firstname
        lastname
        gender
        id
        addresses {
            city
            company
            country_code
            default_billing
            default_shipping
            id
            postcode
            region {
              region
              region_code
              region_id
            }
            street
            telephone
        }
    `,
  },
};
Was this page helpful?