import chargebee from "../../chargebee.app.mjs";
import { clearObject } from "../../common/utils.mjs";
export default {
key: "chargebee-create-customer",
name: "Create Customer",
description: "Create a customer in Chargebee. [See the documentation](https://apidocs.chargebee.com/docs/api/customers?lang=node-v3#create_a_customer)",
version: "0.0.1",
type: "action",
props: {
chargebee,
id: {
type: "string",
label: "ID",
description: "ID for the new customer. If not given, this will be auto-generated.",
optional: true,
},
firstName: {
type: "string",
label: "First Name",
description: "First name of the customer.",
optional: true,
},
lastName: {
type: "string",
label: "Last Name",
description: "Last name of the customer.",
optional: true,
},
email: {
type: "string",
label: "Email",
description: "Email of the customer.",
optional: true,
},
phone: {
type: "string",
label: "Phone",
description: "Phone number of the customer.",
optional: true,
},
company: {
type: "string",
label: "Company",
description: "Company name of the customer.",
optional: true,
},
additionalFields: {
type: "object",
label: "Additional Fields",
description: "Additional fields and values to set for the customer. [See the documentation](https://apidocs.chargebee.com/docs/api/customers?lang=curl#create_a_customer) for all available fields.",
optional: true,
},
},
async run({ $ }) {
const response = await this.chargebee.createCustomer(clearObject({
id: this.id,
first_name: this.firstName,
last_name: this.lastName,
email: this.email,
phone: this.phone,
company: this.company,
...this.additionalFields,
}));
$.export("$summary", `Successfully created customer (ID: ${response?.customer?.id})`);
return response?.customer ?? response;
},
};