UpdateCustomer
Implements UpdateCustomer Unified Method.
Source
import { getNormalizers } from "@alokai/connect/integration-kit";
import type { UpdateCustomerResponse } from "@vsf-enterprise/bigcommerce-api";
import { defineApi, getCurrentCustomer } from "@vsf-enterprise/unified-api-bigcommerce";
type UpdateCustomerParams = {
channel_ids?: number[];
email?: string;
first_name?: string;
id: number;
last_name?: string;
origin_channel_id: number;
};
export const updateCustomer = defineApi.updateCustomer(async (context, args) => {
const { channel_ids, id: customerId, origin_channel_id } = await getCurrentCustomer(context);
const { normalizeCustomer } = getNormalizers(context);
const {
data: { 0: updatedCustomer },
} = await context.client.v3.put<UpdateCustomerResponse, UpdateCustomerParams[]>("/customers", [
{
channel_ids,
email: args.email,
first_name: args.firstName,
id: customerId,
last_name: args.lastName,
origin_channel_id,
},
]);
return { customer: normalizeCustomer(updatedCustomer!) };
});