UNPKG

aramex-service-api

Version:

An Aramex client package for shipment operations using TypeScript and OOP.

175 lines 8.74 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.dispatchSoapRequest = exports.generateThirdParty = exports.generateShipmentDetails = exports.generateConsignee = void 0; const soap = require('strong-soap').soap; const xml2js_1 = __importDefault(require("xml2js")); const countryCodeFinder_1 = __importDefault(require("../utils/countryCodeFinder")); const generateConsignee = (order) => { var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u; return ({ Reference1: `${(order === null || order === void 0 ? void 0 : order.id) || ''}`, Reference2: '', AccountNumber: '', PartyAddress: { Line1: ((_b = (_a = order === null || order === void 0 ? void 0 : order.shipping) === null || _a === void 0 ? void 0 : _a.address) === null || _b === void 0 ? void 0 : _b.street) || '', Line2: ((_d = (_c = order === null || order === void 0 ? void 0 : order.shipping) === null || _c === void 0 ? void 0 : _c.address) === null || _d === void 0 ? void 0 : _d.district) || '', Line3: (_f = (_e = order === null || order === void 0 ? void 0 : order.shipping) === null || _e === void 0 ? void 0 : _e.address) === null || _f === void 0 ? void 0 : _f.formatted_address, City: ((_j = (_h = (_g = order === null || order === void 0 ? void 0 : order.shipping) === null || _g === void 0 ? void 0 : _g.address) === null || _h === void 0 ? void 0 : _h.city) === null || _j === void 0 ? void 0 : _j.name) || '', StateOrProvinceCode: ((_l = (_k = order === null || order === void 0 ? void 0 : order.shipping) === null || _k === void 0 ? void 0 : _k.address) === null || _l === void 0 ? void 0 : _l.state) || '', PostCode: ((_o = (_m = order === null || order === void 0 ? void 0 : order.shipping) === null || _m === void 0 ? void 0 : _m.address) === null || _o === void 0 ? void 0 : _o.postal_code) || '', CountryCode: (0, countryCodeFinder_1.default)(order === null || order === void 0 ? void 0 : order.currency_code) || 'SA' // Default to 'SA' if no currency code }, Contact: { Department: '', PersonName: ((_p = order === null || order === void 0 ? void 0 : order.customer) === null || _p === void 0 ? void 0 : _p.name) || '', Title: '', CompanyName: (_q = order === null || order === void 0 ? void 0 : order.customer) === null || _q === void 0 ? void 0 : _q.name, PhoneNumber1: (_r = order === null || order === void 0 ? void 0 : order.customer) === null || _r === void 0 ? void 0 : _r.mobile, PhoneNumber1Ext: '', PhoneNumber2: '', PhoneNumber2Ext: '', FaxNumber: '', CellPhone: ((_s = order === null || order === void 0 ? void 0 : order.customer) === null || _s === void 0 ? void 0 : _s.mobile) || '', EmailAddress: ((_t = order === null || order === void 0 ? void 0 : order.customer) === null || _t === void 0 ? void 0 : _t.email) || '', Type: ((_u = order === null || order === void 0 ? void 0 : order.customer) === null || _u === void 0 ? void 0 : _u.type) || 'Individual' // Default to a valid value like 'Individual' } }); }; exports.generateConsignee = generateConsignee; const generateShipmentDetails = (order) => { var _a, _b, _c, _d; return { Dimensions: { Length: ((_a = order === null || order === void 0 ? void 0 : order.dimensions) === null || _a === void 0 ? void 0 : _a.length) || 10, Width: ((_b = order === null || order === void 0 ? void 0 : order.dimensions) === null || _b === void 0 ? void 0 : _b.width) || 10, Height: ((_c = order === null || order === void 0 ? void 0 : order.dimensions) === null || _c === void 0 ? void 0 : _c.height) || 10, Unit: 'CM' }, ActualWeight: { Value: (order === null || order === void 0 ? void 0 : order.weight) || 0.5, Unit: 'Kg' }, ChargeableWeight: { Value: (order === null || order === void 0 ? void 0 : order.chargeable_weight) || 0.5, Unit: 'Kg' }, NumberOfPieces: (order === null || order === void 0 ? void 0 : order.products_count) || 1, ProductGroup: (order === null || order === void 0 ? void 0 : order.currency_code) === "SAR" ? 'DOM' : 'EXP', ProductType: (order === null || order === void 0 ? void 0 : order.currency_code) === "SAR" ? 'CDS' : 'EPX', PaymentType: 'P', PaymentOptions: '', Services: '', DescriptionOfGoods: ((_d = order === null || order === void 0 ? void 0 : order.products) === null || _d === void 0 ? void 0 : _d.map((p) => p.name).join(', ')) || 'Goods', GoodsOriginCountry: 'SA', CashOnDeliveryAmount: { Value: 0, CurrencyCode: (order === null || order === void 0 ? void 0 : order.currency_code) || 'SAR' }, InsuranceAmount: { Value: 0, CurrencyCode: (order === null || order === void 0 ? void 0 : order.currency_code) || 'SAR' }, CollectAmount: { Value: 0, CurrencyCode: (order === null || order === void 0 ? void 0 : order.currency_code) || 'SAR' }, CashAdditionalAmount: { Value: 0, CurrencyCode: (order === null || order === void 0 ? void 0 : order.currency_code) || 'SAR' }, CashAdditionalAmountDescription: '', CustomsValueAmount: { Value: (order === null || order === void 0 ? void 0 : order.currency_code) === "SAR" ? 0 : (order === null || order === void 0 ? void 0 : order.order_total) || 0, CurrencyCode: (order === null || order === void 0 ? void 0 : order.currency_code) || 'SAR' }, Items: [ { PackageType: 'Box', Quantity: order === null || order === void 0 ? void 0 : order.products_count, Weight: { Value: 0.5, Unit: 'Kg' }, Comments: 'Healthcare Products', Reference: '' } ] }; }; exports.generateShipmentDetails = generateShipmentDetails; const generateThirdParty = (order) => ({ Reference1: ``, Reference2: '', Reference3: '', AccountNumber: '', PartyAddress: { Line1: '', Line2: '', Line3: '', City: '', StateOrProvinceCode: '', PostCode: '', CountryCode: '' // Default to 'SA' if no currency code }, Contact: { Department: '', PersonName: '', Title: '', CompanyName: '', PhoneNumber1: '', PhoneNumber1Ext: '', PhoneNumber2: '', PhoneNumber2Ext: '', FaxNumber: '', CellPhone: '', EmailAddress: '', Type: '' // Default to a valid value like 'Individual' } }); exports.generateThirdParty = generateThirdParty; const createSoapClient = async (wsdlPath) => { return new Promise((resolve, reject) => { soap.createClient(wsdlPath, (err, client) => { if (err) { reject(err); } else { resolve(client); } }); }); }; const dispatchSoapRequest = async (wsdlPath, operation, args) => { try { const client = await createSoapClient(wsdlPath); return new Promise((resolve, reject) => { client[operation](args, (err, result, envelope) => { if (err) { reject(err); } else if (result) { resolve(result); } else { const parser = new xml2js_1.default.Parser({ explicitArray: false, ignoreAttrs: true }); parser.parseString(envelope, (parseErr, parsedEnvelope) => { if (parseErr) { reject(parseErr); } else { resolve(parsedEnvelope['s:Envelope']['s:Body']); } }); } }); }); } catch (error) { throw error; } }; exports.dispatchSoapRequest = dispatchSoapRequest; //# sourceMappingURL=helper.js.map