ReferenceMagentoMethods
GetCustomer
Implements GetCustomer Unified Method.
Source
import { getNormalizers } from "@alokai/connect/integration-kit";
import { clearStaleCustomerToken, defineApi, isCustomerAuthorizationError, query } from "@vsf-enterprise/unified-api-magento";
import type { Customer } from "@vsf-enterprise/unified-api-magento/ecommerceTypes";
export const getCustomer = defineApi.getCustomer(async (context) => {
const { api } = await context.getApiClient();
const { normalizeCustomer } = getNormalizers(context);
try {
const customerData = await query(api.customer());
return {
customer: normalizeCustomer(customerData.customer as Customer),
};
} catch (error) {
if (context.config.state.getCustomerToken() && isCustomerAuthorizationError(error)) {
// The stale token is what's failing; clear it so it stops wedging
// subsequent loginCustomer / getCart calls.
clearStaleCustomerToken(context);
}
return { customer: null };
}
});