import app from "../../shipengine.app.mjs";
export default {
key: "shipengine-validate-address",
name: "Validate An Address",
description: "Address validation ensures accurate addresses and can lead to reduced shipping costs by preventing address correction surcharges. [See the docs](https://shipengine.github.io/shipengine-openapi/#operation/validate_address).",
type: "action",
version: "0.0.2",
props: {
app,
name: {
type: "string",
label: "Name",
description: "The name of a contact person at this address.",
optional: true,
},
phone: {
type: "string",
label: "Phone",
description: "The phone number of a contact person at this address. The format of this phone number varies depending on the country.",
optional: true,
},
cityLocality: {
type: "string",
label: "City Or Locality",
description: "The name of the city or locality.",
},
stateProvince: {
type: "string",
label: "State Or Province",
description: "The state or province. For some countries (including the U.S.) only abbreviations are allowed. Other countries allow the full name or abbreviation.",
},
countryCode: {
type: "string",
label: "Country Code",
description: "The two-letter [ISO 3166-1 country code](https://en.wikipedia.org/wiki/ISO_3166-1).",
},
addressLine1: {
type: "string",
label: "Address Line 1",
description: "The first line of the street address. For some addresses, this may be the only line. Other addresses may have two or three lines.",
},
addressLine2: {
type: "string",
label: "Address Line 2",
description: "The second line of the street address.",
optional: true,
},
addressLine3: {
type: "string",
label: "Address Line 3",
description: "The third line of the street address.",
optional: true,
},
},
methods: {
validateAddress(args = {}) {
return this.app.makeRequest({
method: "post",
path: "/addresses/validate",
...args,
});
},
},
async run({ $: step }) {
const {
name,
phone,
cityLocality,
stateProvince,
countryCode,
addressLine1,
addressLine2,
addressLine3,
} = this;
const response = await this.validateAddress({
step,
data: [
{
name,
phone,
address_line1: addressLine1,
address_line2: addressLine2,
address_line3: addressLine3,
city_locality: cityLocality,
state_province: stateProvince,
country_code: countryCode,
},
],
});
step.export("$summary", "Successfully validated address");
return response;
},
};