fc-landmark 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/axios.js +29 -29
- package/dist/axios.js.map +1 -1
- package/dist/core.js +18 -18
- package/dist/globals.js +4 -4
- package/dist/index.js +6 -6
- package/dist/landmark.js +75 -75
- package/dist/landmark.js.map +1 -1
- package/dist/shipment.js +199 -177
- package/dist/shipment.js.map +1 -1
- package/dist/tracking.js +92 -121
- package/dist/tracking.js.map +1 -1
- package/dist/types.js +2 -2
- package/package.json +31 -31
- package/src/landmark.ts +2 -2
- package/src/shipment.ts +30 -8
- package/src/tracking.ts +8 -37
- package/tests/shipment.js +13 -6
- package/src/trackingEvents.json +0 -24
package/dist/tracking.js
CHANGED
|
@@ -1,122 +1,93 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
const globals_1 = require("./globals");
|
|
13
|
-
const xml_js_1 = require("xml-js");
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
for (let i = 0; i < resp['TrackResponse']['Result']['Packages']['Package']['Events']['Event'].length; i++) {
|
|
94
|
-
let history = {};
|
|
95
|
-
let code = resp['TrackResponse']['Result']['Packages']['Package']['Events']['Event'][i]['EventCode']['_text'];
|
|
96
|
-
let trackingEventName = eventMappings[code];
|
|
97
|
-
if (trackingEventName) {
|
|
98
|
-
history.status = trackingEventName;
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
// if(code == '50' || code == '60' ){
|
|
102
|
-
// history.status = "In Progress";
|
|
103
|
-
// }
|
|
104
|
-
// else if(code == '500'){
|
|
105
|
-
// history.status = "Delivered";
|
|
106
|
-
// }
|
|
107
|
-
// else{
|
|
108
|
-
history.status = "In Transit";
|
|
109
|
-
}
|
|
110
|
-
history.status_date = resp['TrackResponse']['Result']['Packages']['Package']['Events']['Event'][i]['DateTime']['_text'];
|
|
111
|
-
let dateofevent = new Date(history.status_date);
|
|
112
|
-
history.event_date = dateofevent.getTime();
|
|
113
|
-
history.status_detail = resp['TrackResponse']['Result']['Packages']['Package']['Events']['Event'][i]['Status']['_text'] || "";
|
|
114
|
-
history.location = resp['TrackResponse']['Result']['Packages']['Package']['Events']['Event'][i]['Location']['_text'] || '';
|
|
115
|
-
history.country = '';
|
|
116
|
-
response.tracking_history.push(history);
|
|
117
|
-
}
|
|
118
|
-
return response;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
exports.default = Tracking;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const globals_1 = require("./globals");
|
|
13
|
+
const xml_js_1 = require("xml-js");
|
|
14
|
+
class Tracking {
|
|
15
|
+
constructor() {
|
|
16
|
+
}
|
|
17
|
+
buildTrackingRequest(args, username, password, test, clientId) {
|
|
18
|
+
try {
|
|
19
|
+
let trackRequest = {
|
|
20
|
+
"Login": {
|
|
21
|
+
"Username": username,
|
|
22
|
+
"Password": password
|
|
23
|
+
},
|
|
24
|
+
"Test": test,
|
|
25
|
+
"ClientID": clientId,
|
|
26
|
+
"TrackingNumber": args.tracking_number,
|
|
27
|
+
"RetrievalType": "Historical"
|
|
28
|
+
};
|
|
29
|
+
let request = {
|
|
30
|
+
"TrackRequest": trackRequest
|
|
31
|
+
};
|
|
32
|
+
const xmlData = (0, xml_js_1.js2xml)(request, { compact: true, ignoreComment: true, spaces: 4 });
|
|
33
|
+
return xmlData;
|
|
34
|
+
}
|
|
35
|
+
catch (e) {
|
|
36
|
+
throw globals_1.MyGlobal.FlclError.create({ className: 'Tracking', methodName: '_buildRequest', message: 'Exception while building the LandMark Tracking request', cause: e, appendChildMsg: true });
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
trackInfo(ShipmentRequest) {
|
|
40
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
var _a, _b, _c;
|
|
42
|
+
try {
|
|
43
|
+
let configs = {
|
|
44
|
+
headers: {
|
|
45
|
+
'Content-Type': 'application/xml'
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
let resp = yield globals_1.MyGlobal.axios.post(globals_1.MyGlobal.track_url, ShipmentRequest, configs);
|
|
49
|
+
(_a = globals_1.MyGlobal.logger) === null || _a === void 0 ? void 0 : _a.info({ npm: 'fc-landmark', className: 'Tracking', methodName: 'trackInfo', propertyName: 'landmark-RAW-RESPOSNE', propertyValue: resp.data });
|
|
50
|
+
let responsejson = (0, xml_js_1.xml2json)(resp.data, { compact: true, spaces: 4 });
|
|
51
|
+
return JSON.parse(responsejson);
|
|
52
|
+
}
|
|
53
|
+
catch (e) {
|
|
54
|
+
(_b = globals_1.MyGlobal.logger) === null || _b === void 0 ? void 0 : _b.info({ npm: 'fc-landmark', className: 'Tracking', methodName: 'trackInfo', propertyName: 'landmar-RAW-RESPOSNE', data: { error: e } });
|
|
55
|
+
(_c = globals_1.MyGlobal.logger) === null || _c === void 0 ? void 0 : _c.error(globals_1.MyGlobal.flclError.create({ npm: 'fc-landmark', className: 'Tracking', methodName: 'trackInfo', propertyName: 'CREDITS_ERROR', cause: e }));
|
|
56
|
+
throw e;
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
buildResponse(resp, args) {
|
|
61
|
+
let response = {
|
|
62
|
+
reference: args.reference,
|
|
63
|
+
tracking_number: args.tracking_number,
|
|
64
|
+
tracking_history: []
|
|
65
|
+
};
|
|
66
|
+
if (!Array.isArray(resp['TrackResponse']['Result']['Packages']['Package']['Events']['Event'])) {
|
|
67
|
+
resp['TrackResponse']['Result']['Packages']['Package']['Events']['Event'] = [resp['TrackResponse']['Result']['Packages']['Package']['Events']['Event']];
|
|
68
|
+
}
|
|
69
|
+
for (let i = 0; i < resp['TrackResponse']['Result']['Packages']['Package']['Events']['Event'].length; i++) {
|
|
70
|
+
let history = {};
|
|
71
|
+
let code = resp['TrackResponse']['Result']['Packages']['Package']['Events']['Event'][i]['EventCode']['_text'];
|
|
72
|
+
if (code == '50' || code == '60') {
|
|
73
|
+
history.status = "In Progress";
|
|
74
|
+
}
|
|
75
|
+
else if (code == '500') {
|
|
76
|
+
history.status = "Delivered";
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
history.status = "In Transit";
|
|
80
|
+
}
|
|
81
|
+
history.status_date = resp['TrackResponse']['Result']['Packages']['Package']['Events']['Event'][i]['DateTime']['_text'];
|
|
82
|
+
let dateofevent = new Date(history.status_date);
|
|
83
|
+
history.event_date = dateofevent.getTime();
|
|
84
|
+
history.status_detail = resp['TrackResponse']['Result']['Packages']['Package']['Events']['Event'][i]['Status']['_text'] || "";
|
|
85
|
+
history.location = resp['TrackResponse']['Result']['Packages']['Package']['Events']['Event'][i]['Location']['_text'] || '';
|
|
86
|
+
history.country = '';
|
|
87
|
+
response.tracking_history.push(history);
|
|
88
|
+
}
|
|
89
|
+
return response;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.default = Tracking;
|
|
122
93
|
//# sourceMappingURL=tracking.js.map
|
package/dist/tracking.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracking.js","sourceRoot":"","sources":["../src/tracking.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,uCAA4C;AAC5C,mCAA0C;AAE1C,
|
|
1
|
+
{"version":3,"file":"tracking.js","sourceRoot":"","sources":["../src/tracking.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
//# sourceMappingURL=types.js.map
|
package/package.json
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "fc-landmark",
|
|
3
|
-
"version": "2.0.
|
|
4
|
-
"description": "landmark Shipment and Tracking API.",
|
|
5
|
-
"main": "./dist/index.js",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"build": "rm -rf ./dist && tsc",
|
|
8
|
-
"test": "echo \"Error: no test specified\" && exit 1"
|
|
9
|
-
},
|
|
10
|
-
"author": "Midhun",
|
|
11
|
-
"license": "ISC",
|
|
12
|
-
"dependencies": {
|
|
13
|
-
"@types/xml2js": "0.4.11",
|
|
14
|
-
"@types/redis": "^2.8.25",
|
|
15
|
-
"@types/redlock": "^4.0.1",
|
|
16
|
-
"@types/uuid": "^8.3.0",
|
|
17
|
-
"app-root-path": "^3.0.0",
|
|
18
|
-
"axios": "^0.19.0",
|
|
19
|
-
"fc-logger": "^4.2.0",
|
|
20
|
-
"fs": "0.0.1-security",
|
|
21
|
-
"redis": "^3.0.2",
|
|
22
|
-
"redlock": "^4.1.0",
|
|
23
|
-
"request": "^2.88.2",
|
|
24
|
-
"uuid": "^8.3.0",
|
|
25
|
-
"xml-js": "1.6.11"
|
|
26
|
-
},
|
|
27
|
-
"devDependencies": {
|
|
28
|
-
"@types/request": "^2.48.7",
|
|
29
|
-
"typescript": "^4.9.5"
|
|
30
|
-
}
|
|
31
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "fc-landmark",
|
|
3
|
+
"version": "2.0.1",
|
|
4
|
+
"description": "landmark Shipment and Tracking API.",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"build": "rm -rf ./dist && tsc",
|
|
8
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
9
|
+
},
|
|
10
|
+
"author": "Midhun",
|
|
11
|
+
"license": "ISC",
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"@types/xml2js": "0.4.11",
|
|
14
|
+
"@types/redis": "^2.8.25",
|
|
15
|
+
"@types/redlock": "^4.0.1",
|
|
16
|
+
"@types/uuid": "^8.3.0",
|
|
17
|
+
"app-root-path": "^3.0.0",
|
|
18
|
+
"axios": "^0.19.0",
|
|
19
|
+
"fc-logger": "^4.2.0",
|
|
20
|
+
"fs": "0.0.1-security",
|
|
21
|
+
"redis": "^3.0.2",
|
|
22
|
+
"redlock": "^4.1.0",
|
|
23
|
+
"request": "^2.88.2",
|
|
24
|
+
"uuid": "^8.3.0",
|
|
25
|
+
"xml-js": "1.6.11"
|
|
26
|
+
},
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"@types/request": "^2.48.7",
|
|
29
|
+
"typescript": "^4.9.5"
|
|
30
|
+
}
|
|
31
|
+
}
|
package/src/landmark.ts
CHANGED
|
@@ -21,12 +21,12 @@ export class LandMark {
|
|
|
21
21
|
setRequredGlobals(logger, flclerror, rootRequestId, requestId);
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
async createShipmet(args: any) {
|
|
24
|
+
async createShipmet(args: any, dangerousGoodsDeatils: any = "") {
|
|
25
25
|
try {
|
|
26
26
|
|
|
27
27
|
let shipObj = new Shipment();
|
|
28
28
|
app.logger?.info({npm: 'fc-landmark', className: 'Landmark', methodName: 'createShipmet', propertyName: 'landMarkShipmentInput', propertyValue: args});
|
|
29
|
-
let landmarkShipmentRequest: string = shipObj.buildShipmentRequest(args,this.username,this.password,this.test,this.clientId,this.vendorEORINumber,this.vendorIOSSNumber);
|
|
29
|
+
let landmarkShipmentRequest: string = shipObj.buildShipmentRequest(args, dangerousGoodsDeatils, this.username,this.password,this.test,this.clientId,this.vendorEORINumber,this.vendorIOSSNumber);
|
|
30
30
|
app.logger?.info({npm: 'fc-landmark', className: 'Landmark', methodName: 'createShipmet', propertyName: 'landMarkShipmentRequest', propertyValue: landmarkShipmentRequest});
|
|
31
31
|
let landmarkShipmentRes: any = await shipObj.createShipment(landmarkShipmentRequest);
|
|
32
32
|
if(landmarkShipmentRes.hasOwnProperty("ImportResponse") && landmarkShipmentRes['ImportResponse']['Errors']){
|
package/src/shipment.ts
CHANGED
|
@@ -66,7 +66,7 @@ export default class Shipment {
|
|
|
66
66
|
return shipper;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
buildShipmentRequest(args: any,username:string,password:string,test:boolean,clientId:number,vendorEORINumber:any,vendorIOSSNumber:any): string{
|
|
69
|
+
buildShipmentRequest(args: any, dangerousGoodsDeatils: any = "", username:string,password:string,test:boolean,clientId:number,vendorEORINumber:any,vendorIOSSNumber:any): string{
|
|
70
70
|
try {
|
|
71
71
|
const EUCountries = ["BE", "BG", "CZ", "DK", "DE", "EE", "IE", "EL", "ES", "FR", "HR", "IT", "CY", "LV", "LT", "LU", "HU", "MT", "NL", "AT", "PL", "PT", "RO", "SI", "SK", "FI", "SE"];
|
|
72
72
|
let iossNumber=""
|
|
@@ -110,18 +110,40 @@ export default class Shipment {
|
|
|
110
110
|
"VendorInformation": this.getVendorInfo(args.shipfrom_address,args.targetFromCountry,eroiNumber,iossNumber),
|
|
111
111
|
"IsCommercialShipment": args.b2b ? 1 : 0,
|
|
112
112
|
}
|
|
113
|
-
let items = args.pieces.map((item:any)=>{
|
|
114
|
-
|
|
113
|
+
// let items = args.pieces.map((item:any)=>{
|
|
114
|
+
// return {"Item":{
|
|
115
|
+
// "Sku": item.sku || 12345,
|
|
116
|
+
// "Description": item.description.substr(0,100),
|
|
117
|
+
// "Quantity": item.quantity,
|
|
118
|
+
// "UnitPrice": (item.sale_price == 0) ? 0.01 : item.sale_price,
|
|
119
|
+
// "HSCode": item.hs_code,
|
|
120
|
+
// "CountryOfOrigin": item.origin_country_code
|
|
121
|
+
// }
|
|
122
|
+
// }
|
|
123
|
+
// })
|
|
124
|
+
let items = args.pieces.map((item:any) => {
|
|
125
|
+
let itemObj: any = {
|
|
115
126
|
"Sku": item.sku || 12345,
|
|
116
|
-
"Description": item.description.substr(0,100),
|
|
127
|
+
"Description": item.description.substr(0, 100),
|
|
117
128
|
"Quantity": item.quantity,
|
|
118
|
-
"UnitPrice":
|
|
129
|
+
"UnitPrice": (item.sale_price == 0) ? 0.01 : item.sale_price,
|
|
119
130
|
"HSCode": item.hs_code,
|
|
120
131
|
"CountryOfOrigin": item.origin_country_code
|
|
132
|
+
};
|
|
133
|
+
if(dangerousGoodsDeatils && dangerousGoodsDeatils[item.sku] && dangerousGoodsDeatils[item.sku]['UNCode']){
|
|
134
|
+
let dangerousGoodInformation = {
|
|
135
|
+
"ContainsDangerousGoods": 1,
|
|
136
|
+
"UNCode": dangerousGoodsDeatils[item.sku]['UNCode'] || "",
|
|
137
|
+
"PackingGroup": dangerousGoodsDeatils[item.sku]['CategoryCode'] || "",
|
|
138
|
+
"PackingInstructions": dangerousGoodsDeatils[item.sku]['PackingInstructions'] || "",
|
|
139
|
+
"ItemWeight": item.weight,
|
|
140
|
+
"ItemWeightUnit": args.weight_unit
|
|
141
|
+
}
|
|
142
|
+
itemObj["DangerousGoodsInformation"] = dangerousGoodInformation;
|
|
121
143
|
}
|
|
122
|
-
|
|
123
|
-
})
|
|
124
|
-
importRequest["Items"] =
|
|
144
|
+
return itemObj;
|
|
145
|
+
});
|
|
146
|
+
importRequest["Items"] = { "Item": items };
|
|
125
147
|
let request :any = {
|
|
126
148
|
"ImportRequest": importRequest
|
|
127
149
|
}
|
package/src/tracking.ts
CHANGED
|
@@ -2,31 +2,6 @@ import { FlavorcloudTrackingResponse} from "./types";
|
|
|
2
2
|
import { MyGlobal as app } from './globals';
|
|
3
3
|
import { js2xml , xml2json} from 'xml-js';
|
|
4
4
|
|
|
5
|
-
let eventMappings:any = {
|
|
6
|
-
"50" : "In Progress",
|
|
7
|
-
"60" : "In Progress",
|
|
8
|
-
"75" : "In Transit",
|
|
9
|
-
"80" : "In Transit",
|
|
10
|
-
"90" : "Customs Hold",
|
|
11
|
-
"100" : "In Transit",
|
|
12
|
-
"125" : "Cleared Customs",
|
|
13
|
-
"135" : "Customs Delay",
|
|
14
|
-
"150" : "In Transit",
|
|
15
|
-
"155" : "In Transit",
|
|
16
|
-
"200" : "In Transit",
|
|
17
|
-
"225" : "Arrived at Import Gateway",
|
|
18
|
-
"250" : "In Transit",
|
|
19
|
-
"275" : "In Transit - Last Mile",
|
|
20
|
-
"300" : "Out For Delivery",
|
|
21
|
-
"400" : "In Transit",
|
|
22
|
-
"410" : "In Transit",
|
|
23
|
-
"450" : "In Transit",
|
|
24
|
-
"500" : "Delivered",
|
|
25
|
-
"550" : "Delivered",
|
|
26
|
-
"800" : "In Transit",
|
|
27
|
-
"900" : "Attempted Delivery"
|
|
28
|
-
}
|
|
29
|
-
|
|
30
5
|
export default class Tracking {
|
|
31
6
|
constructor() {
|
|
32
7
|
|
|
@@ -86,17 +61,13 @@ export default class Tracking {
|
|
|
86
61
|
for(let i = 0; i < resp['TrackResponse']['Result']['Packages']['Package']['Events']['Event'].length; i++){
|
|
87
62
|
let history: any = {};
|
|
88
63
|
let code :any = resp['TrackResponse']['Result']['Packages']['Package']['Events']['Event'][i]['EventCode']['_text'] ;
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
// else if(code == '500'){
|
|
97
|
-
// history.status = "Delivered";
|
|
98
|
-
// }
|
|
99
|
-
// else{
|
|
64
|
+
if(code == '50' || code == '60' ){
|
|
65
|
+
history.status = "In Progress";
|
|
66
|
+
}
|
|
67
|
+
else if(code == '500'){
|
|
68
|
+
history.status = "Delivered";
|
|
69
|
+
}
|
|
70
|
+
else{
|
|
100
71
|
history.status = "In Transit";
|
|
101
72
|
}
|
|
102
73
|
history.status_date = resp['TrackResponse']['Result']['Packages']['Package']['Events']['Event'][i]['DateTime']['_text'];
|
|
@@ -109,4 +80,4 @@ export default class Tracking {
|
|
|
109
80
|
}
|
|
110
81
|
return response;
|
|
111
82
|
}
|
|
112
|
-
}
|
|
83
|
+
}
|
package/tests/shipment.js
CHANGED
|
@@ -59,7 +59,7 @@ let request = {
|
|
|
59
59
|
"origin_country_code": "US",
|
|
60
60
|
"material": "wellbel glamlab Single International",
|
|
61
61
|
"description": "wellbel glamlab Single International",
|
|
62
|
-
"sku": "
|
|
62
|
+
"sku": "sku123",
|
|
63
63
|
"category": [
|
|
64
64
|
"wellbel glamlab - Single - International"
|
|
65
65
|
],
|
|
@@ -83,7 +83,7 @@ let request = {
|
|
|
83
83
|
"origin_country_code": "US",
|
|
84
84
|
"material": "wellbel glamlab Single International",
|
|
85
85
|
"description": "wellbel glamlab Single International",
|
|
86
|
-
"sku": "
|
|
86
|
+
"sku": "sku123",
|
|
87
87
|
"category": [
|
|
88
88
|
"wellbel glamlab - Single - International"
|
|
89
89
|
],
|
|
@@ -403,7 +403,7 @@ let request = {
|
|
|
403
403
|
"providerrateid": 9437685,
|
|
404
404
|
"hashkey": "ZpPGix",
|
|
405
405
|
"carrier": "landmark",
|
|
406
|
-
"servicecode": "
|
|
406
|
+
"servicecode": "LGINTSTDU",
|
|
407
407
|
"flclservicecode": "standard",
|
|
408
408
|
"termsoftrade": "DDU",
|
|
409
409
|
"easypostreferenceid": "",
|
|
@@ -432,9 +432,16 @@ let request = {
|
|
|
432
432
|
async function create(){
|
|
433
433
|
try{
|
|
434
434
|
console.log('sampel gift');
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
435
|
+
let dangerousGoodDEtails = {
|
|
436
|
+
"sku123": {
|
|
437
|
+
"SKU": "sku123",
|
|
438
|
+
"UNCode": "UN3481",
|
|
439
|
+
"CategoryCode": "II",
|
|
440
|
+
"PackingInstructions": "PS967S1"
|
|
441
|
+
}
|
|
442
|
+
};
|
|
443
|
+
let landmark = new LandMark("flavorcloudapi","FCL@ndmark123", "2056", false,'','','','');
|
|
444
|
+
let res = await landmark.createShipmet(request, dangerousGoodDEtails);
|
|
438
445
|
console.log(res);
|
|
439
446
|
return res;
|
|
440
447
|
|
package/src/trackingEvents.json
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"50" : "In Progress",
|
|
3
|
-
"60" : "In Progress",
|
|
4
|
-
"75" : "In Transit",
|
|
5
|
-
"80" : "In Transit",
|
|
6
|
-
"90" : "Customs Hold",
|
|
7
|
-
"100" : "In Transit",
|
|
8
|
-
"125" : "Cleared Customs",
|
|
9
|
-
"135" : "Customs Delay",
|
|
10
|
-
"150" : "In Transit",
|
|
11
|
-
"155" : "In Transit",
|
|
12
|
-
"200" : "In Transit",
|
|
13
|
-
"225" : "Arrived at Import Gateway",
|
|
14
|
-
"250" : "In Transit",
|
|
15
|
-
"275" : "In Transit - Last Mile",
|
|
16
|
-
"300" : "Out For Delivery",
|
|
17
|
-
"400" : "In Transit",
|
|
18
|
-
"410" : "In Transit",
|
|
19
|
-
"450" : "In Transit",
|
|
20
|
-
"500" : "Delivered",
|
|
21
|
-
"550" : "Delivered",
|
|
22
|
-
"800" : "In Transit",
|
|
23
|
-
"900" : "Attempted Delivery"
|
|
24
|
-
}
|