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/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
- let eventMappings = {
15
- "50": "In Progress",
16
- "60": "In Progress",
17
- "75": "In Transit",
18
- "80": "In Transit",
19
- "90": "Customs Hold",
20
- "100": "In Transit",
21
- "125": "Cleared Customs",
22
- "135": "Customs Delay",
23
- "150": "In Transit",
24
- "155": "In Transit",
25
- "200": "In Transit",
26
- "225": "Arrived at Import Gateway",
27
- "250": "In Transit",
28
- "275": "In Transit - Last Mile",
29
- "300": "Out For Delivery",
30
- "400": "In Transit",
31
- "410": "In Transit",
32
- "450": "In Transit",
33
- "500": "Delivered",
34
- "550": "Delivered",
35
- "800": "In Transit",
36
- "900": "Attempted Delivery"
37
- };
38
- class Tracking {
39
- constructor() {
40
- }
41
- buildTrackingRequest(args, username, password, test, clientId) {
42
- try {
43
- let trackRequest = {
44
- "Login": {
45
- "Username": username,
46
- "Password": password
47
- },
48
- "Test": test,
49
- "ClientID": clientId,
50
- "TrackingNumber": args.tracking_number,
51
- "RetrievalType": "Historical"
52
- };
53
- let request = {
54
- "TrackRequest": trackRequest
55
- };
56
- const xmlData = (0, xml_js_1.js2xml)(request, { compact: true, ignoreComment: true, spaces: 4 });
57
- return xmlData;
58
- }
59
- catch (e) {
60
- throw globals_1.MyGlobal.FlclError.create({ className: 'Tracking', methodName: '_buildRequest', message: 'Exception while building the LandMark Tracking request', cause: e, appendChildMsg: true });
61
- }
62
- }
63
- trackInfo(ShipmentRequest) {
64
- var _a, _b, _c;
65
- return __awaiter(this, void 0, void 0, function* () {
66
- try {
67
- let configs = {
68
- headers: {
69
- 'Content-Type': 'application/xml'
70
- }
71
- };
72
- let resp = yield globals_1.MyGlobal.axios.post(globals_1.MyGlobal.track_url, ShipmentRequest, configs);
73
- (_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 });
74
- let responsejson = (0, xml_js_1.xml2json)(resp.data, { compact: true, spaces: 4 });
75
- return JSON.parse(responsejson);
76
- }
77
- catch (e) {
78
- (_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 } });
79
- (_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 }));
80
- throw e;
81
- }
82
- });
83
- }
84
- buildResponse(resp, args) {
85
- let response = {
86
- reference: args.reference,
87
- tracking_number: args.tracking_number,
88
- tracking_history: []
89
- };
90
- if (!Array.isArray(resp['TrackResponse']['Result']['Packages']['Package']['Events']['Event'])) {
91
- resp['TrackResponse']['Result']['Packages']['Package']['Events']['Event'] = [resp['TrackResponse']['Result']['Packages']['Package']['Events']['Event']];
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
@@ -1 +1 @@
1
- {"version":3,"file":"tracking.js","sourceRoot":"","sources":["../src/tracking.ts"],"names":[],"mappings":"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"}
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.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
- return {"Item":{
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": (item.sale_price == 0) ? 0.01 : item.sale_price,
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"] = 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
- let trackingEventName = eventMappings[code];
90
- if (trackingEventName){
91
- history.status = trackingEventName;
92
- } else {
93
- // if(code == '50' || code == '60' ){
94
- // history.status = "In Progress";
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": "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": "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": "APC.PRIUDC",
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
- let landmark = new LandMark("demoapi","demo123",false,'','','','');
437
- let res = await landmark.createShipmet(request);
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
 
@@ -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
- }