@things-factory/integration-lmd 4.3.671 → 4.3.673

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.
Files changed (165) hide show
  1. package/dist-server/constants/index.js +19 -0
  2. package/dist-server/constants/index.js.map +1 -0
  3. package/dist-server/constants/lmd.js +9 -0
  4. package/dist-server/constants/lmd.js.map +1 -0
  5. package/dist-server/constants/tms.js +7 -0
  6. package/dist-server/constants/tms.js.map +1 -0
  7. package/dist-server/controllers/citylink/apis/index.js +18 -0
  8. package/dist-server/controllers/citylink/apis/index.js.map +1 -0
  9. package/dist-server/controllers/citylink/apis/shipment-request/create-shipment-request.js +17 -0
  10. package/dist-server/controllers/citylink/apis/shipment-request/create-shipment-request.js.map +1 -0
  11. package/dist-server/controllers/citylink/apis/shipment-request/index.js +18 -0
  12. package/dist-server/controllers/citylink/apis/shipment-request/index.js.map +1 -0
  13. package/dist-server/controllers/citylink/citylink.js +121 -0
  14. package/dist-server/controllers/citylink/citylink.js.map +1 -0
  15. package/dist-server/controllers/citylink/index.js +34 -0
  16. package/dist-server/controllers/citylink/index.js.map +1 -0
  17. package/dist-server/controllers/citylink/platform-action.js +35 -0
  18. package/dist-server/controllers/citylink/platform-action.js.map +1 -0
  19. package/dist-server/controllers/etrax/apis/create-shipment-request.js +60 -0
  20. package/dist-server/controllers/etrax/apis/create-shipment-request.js.map +1 -0
  21. package/dist-server/controllers/etrax/apis/index.js +18 -0
  22. package/dist-server/controllers/etrax/apis/index.js.map +1 -0
  23. package/dist-server/controllers/etrax/etrax.js +85 -0
  24. package/dist-server/controllers/etrax/etrax.js.map +1 -0
  25. package/dist-server/controllers/etrax/index.js +34 -0
  26. package/dist-server/controllers/etrax/index.js.map +1 -0
  27. package/dist-server/controllers/etrax/platform-action.js +28 -0
  28. package/dist-server/controllers/etrax/platform-action.js.map +1 -0
  29. package/dist-server/controllers/index.js +27 -0
  30. package/dist-server/controllers/index.js.map +1 -0
  31. package/dist-server/controllers/lmd-api/decorators.js +35 -0
  32. package/dist-server/controllers/lmd-api/decorators.js.map +1 -0
  33. package/dist-server/controllers/lmd-api/index.js +167 -0
  34. package/dist-server/controllers/lmd-api/index.js.map +1 -0
  35. package/dist-server/controllers/lmd-middleware/apis/create-parcel.js +82 -0
  36. package/dist-server/controllers/lmd-middleware/apis/create-parcel.js.map +1 -0
  37. package/dist-server/controllers/lmd-middleware/apis/delete-parcel.js +26 -0
  38. package/dist-server/controllers/lmd-middleware/apis/delete-parcel.js.map +1 -0
  39. package/dist-server/controllers/lmd-middleware/apis/get-awb.js +20 -0
  40. package/dist-server/controllers/lmd-middleware/apis/get-awb.js.map +1 -0
  41. package/dist-server/controllers/lmd-middleware/apis/get-parcel.js +47 -0
  42. package/dist-server/controllers/lmd-middleware/apis/get-parcel.js.map +1 -0
  43. package/dist-server/controllers/lmd-middleware/apis/get-parcels.js +15 -0
  44. package/dist-server/controllers/lmd-middleware/apis/get-parcels.js.map +1 -0
  45. package/dist-server/controllers/lmd-middleware/apis/index.js +22 -0
  46. package/dist-server/controllers/lmd-middleware/apis/index.js.map +1 -0
  47. package/dist-server/controllers/lmd-middleware/index.js +34 -0
  48. package/dist-server/controllers/lmd-middleware/index.js.map +1 -0
  49. package/dist-server/controllers/lmd-middleware/lmd-middleware.js +71 -0
  50. package/dist-server/controllers/lmd-middleware/lmd-middleware.js.map +1 -0
  51. package/dist-server/controllers/lmd-middleware/platform-action.js +10 -0
  52. package/dist-server/controllers/lmd-middleware/platform-action.js.map +1 -0
  53. package/dist-server/controllers/lmd-middleware-v2/apis-v2/create-parcel-v2.js +80 -0
  54. package/dist-server/controllers/lmd-middleware-v2/apis-v2/create-parcel-v2.js.map +1 -0
  55. package/dist-server/controllers/lmd-middleware-v2/apis-v2/delete-parcel-v2.js +26 -0
  56. package/dist-server/controllers/lmd-middleware-v2/apis-v2/delete-parcel-v2.js.map +1 -0
  57. package/dist-server/controllers/lmd-middleware-v2/apis-v2/get-awb-v2.js +20 -0
  58. package/dist-server/controllers/lmd-middleware-v2/apis-v2/get-awb-v2.js.map +1 -0
  59. package/dist-server/controllers/lmd-middleware-v2/apis-v2/get-parcel-v2.js +47 -0
  60. package/dist-server/controllers/lmd-middleware-v2/apis-v2/get-parcel-v2.js.map +1 -0
  61. package/dist-server/controllers/lmd-middleware-v2/apis-v2/get-parcels-v2.js +15 -0
  62. package/dist-server/controllers/lmd-middleware-v2/apis-v2/get-parcels-v2.js.map +1 -0
  63. package/dist-server/controllers/lmd-middleware-v2/apis-v2/index.js +22 -0
  64. package/dist-server/controllers/lmd-middleware-v2/apis-v2/index.js.map +1 -0
  65. package/dist-server/controllers/lmd-middleware-v2/index.js +34 -0
  66. package/dist-server/controllers/lmd-middleware-v2/index.js.map +1 -0
  67. package/dist-server/controllers/lmd-middleware-v2/lmd-middleware-v2.js +66 -0
  68. package/dist-server/controllers/lmd-middleware-v2/lmd-middleware-v2.js.map +1 -0
  69. package/dist-server/controllers/lmd-middleware-v2/platform-action-v2.js +10 -0
  70. package/dist-server/controllers/lmd-middleware-v2/platform-action-v2.js.map +1 -0
  71. package/dist-server/controllers/versafleet/apis/cancel-shipment.js +21 -0
  72. package/dist-server/controllers/versafleet/apis/cancel-shipment.js.map +1 -0
  73. package/dist-server/controllers/versafleet/apis/create-shipment-request.js +62 -0
  74. package/dist-server/controllers/versafleet/apis/create-shipment-request.js.map +1 -0
  75. package/dist-server/controllers/versafleet/apis/get-driver-info.js +21 -0
  76. package/dist-server/controllers/versafleet/apis/get-driver-info.js.map +1 -0
  77. package/dist-server/controllers/versafleet/apis/get-driver-runsheet.js +26 -0
  78. package/dist-server/controllers/versafleet/apis/get-driver-runsheet.js.map +1 -0
  79. package/dist-server/controllers/versafleet/apis/get-drivers-info.js +22 -0
  80. package/dist-server/controllers/versafleet/apis/get-drivers-info.js.map +1 -0
  81. package/dist-server/controllers/versafleet/apis/get-shipment-info.js +21 -0
  82. package/dist-server/controllers/versafleet/apis/get-shipment-info.js.map +1 -0
  83. package/dist-server/controllers/versafleet/apis/index.js +24 -0
  84. package/dist-server/controllers/versafleet/apis/index.js.map +1 -0
  85. package/dist-server/controllers/versafleet/apis/update-shipment-request.js +31 -0
  86. package/dist-server/controllers/versafleet/apis/update-shipment-request.js.map +1 -0
  87. package/dist-server/controllers/versafleet/index.js +34 -0
  88. package/dist-server/controllers/versafleet/index.js.map +1 -0
  89. package/dist-server/controllers/versafleet/platform-action.js +55 -0
  90. package/dist-server/controllers/versafleet/platform-action.js.map +1 -0
  91. package/dist-server/controllers/versafleet/versafleet.js +85 -0
  92. package/dist-server/controllers/versafleet/versafleet.js.map +1 -0
  93. package/dist-server/engine/connector/index.js +4 -0
  94. package/dist-server/engine/connector/index.js.map +1 -0
  95. package/dist-server/engine/connector/lmd-connector.js +28 -0
  96. package/dist-server/engine/connector/lmd-connector.js.map +1 -0
  97. package/dist-server/engine/index.js +5 -0
  98. package/dist-server/engine/index.js.map +1 -0
  99. package/dist-server/engine/task/index.js +4 -0
  100. package/dist-server/engine/task/index.js.map +1 -0
  101. package/dist-server/engine/task/lmd-api.js +54 -0
  102. package/dist-server/engine/task/lmd-api.js.map +1 -0
  103. package/dist-server/index.js +33 -0
  104. package/dist-server/index.js.map +1 -0
  105. package/dist-server/middlewares/index.js +8 -0
  106. package/dist-server/middlewares/index.js.map +1 -0
  107. package/dist-server/migrations/index.js +12 -0
  108. package/dist-server/migrations/index.js.map +1 -0
  109. package/dist-server/routers/ninjavan-public-router.js +45 -0
  110. package/dist-server/routers/ninjavan-public-router.js.map +1 -0
  111. package/dist-server/routes.js +20 -0
  112. package/dist-server/routes.js.map +1 -0
  113. package/dist-server/service/courier-service/courier-service-mutation.js +120 -0
  114. package/dist-server/service/courier-service/courier-service-mutation.js.map +1 -0
  115. package/dist-server/service/courier-service/courier-service-query.js +87 -0
  116. package/dist-server/service/courier-service/courier-service-query.js.map +1 -0
  117. package/dist-server/service/courier-service/courier-service-type.js +81 -0
  118. package/dist-server/service/courier-service/courier-service-type.js.map +1 -0
  119. package/dist-server/service/courier-service/courier-service.js +84 -0
  120. package/dist-server/service/courier-service/courier-service.js.map +1 -0
  121. package/dist-server/service/courier-service/index.js +9 -0
  122. package/dist-server/service/courier-service/index.js.map +1 -0
  123. package/dist-server/service/index.js +50 -0
  124. package/dist-server/service/index.js.map +1 -0
  125. package/dist-server/service/last-mile-delivery/index.js +14 -0
  126. package/dist-server/service/last-mile-delivery/index.js.map +1 -0
  127. package/dist-server/service/last-mile-delivery/last-mile-delivery-mutation.js +718 -0
  128. package/dist-server/service/last-mile-delivery/last-mile-delivery-mutation.js.map +1 -0
  129. package/dist-server/service/last-mile-delivery/last-mile-delivery-query.js +115 -0
  130. package/dist-server/service/last-mile-delivery/last-mile-delivery-query.js.map +1 -0
  131. package/dist-server/service/last-mile-delivery/last-mile-delivery-type.js +249 -0
  132. package/dist-server/service/last-mile-delivery/last-mile-delivery-type.js.map +1 -0
  133. package/dist-server/service/last-mile-delivery/last-mile-delivery.js +253 -0
  134. package/dist-server/service/last-mile-delivery/last-mile-delivery.js.map +1 -0
  135. package/dist-server/service/last-mile-delivery-bizplace/index.js +9 -0
  136. package/dist-server/service/last-mile-delivery-bizplace/index.js.map +1 -0
  137. package/dist-server/service/last-mile-delivery-bizplace/last-mile-delivery-bizplace-mutation.js +120 -0
  138. package/dist-server/service/last-mile-delivery-bizplace/last-mile-delivery-bizplace-mutation.js.map +1 -0
  139. package/dist-server/service/last-mile-delivery-bizplace/last-mile-delivery-bizplace-query.js +87 -0
  140. package/dist-server/service/last-mile-delivery-bizplace/last-mile-delivery-bizplace-query.js.map +1 -0
  141. package/dist-server/service/last-mile-delivery-bizplace/last-mile-delivery-bizplace-type.js +99 -0
  142. package/dist-server/service/last-mile-delivery-bizplace/last-mile-delivery-bizplace-type.js.map +1 -0
  143. package/dist-server/service/last-mile-delivery-bizplace/last-mile-delivery-bizplace.js +114 -0
  144. package/dist-server/service/last-mile-delivery-bizplace/last-mile-delivery-bizplace.js.map +1 -0
  145. package/dist-server/service/last-mile-delivery-setting/index.js +9 -0
  146. package/dist-server/service/last-mile-delivery-setting/index.js.map +1 -0
  147. package/dist-server/service/last-mile-delivery-setting/last-mile-delivery-setting-mutation.js +120 -0
  148. package/dist-server/service/last-mile-delivery-setting/last-mile-delivery-setting-mutation.js.map +1 -0
  149. package/dist-server/service/last-mile-delivery-setting/last-mile-delivery-setting-query.js +87 -0
  150. package/dist-server/service/last-mile-delivery-setting/last-mile-delivery-setting-query.js.map +1 -0
  151. package/dist-server/service/last-mile-delivery-setting/last-mile-delivery-setting-type.js +79 -0
  152. package/dist-server/service/last-mile-delivery-setting/last-mile-delivery-setting-type.js.map +1 -0
  153. package/dist-server/service/last-mile-delivery-setting/last-mile-delivery-setting.js +116 -0
  154. package/dist-server/service/last-mile-delivery-setting/last-mile-delivery-setting.js.map +1 -0
  155. package/dist-server/service/tms-service/index.js +18 -0
  156. package/dist-server/service/tms-service/index.js.map +1 -0
  157. package/dist-server/service/tms-service/interface/tms-service.js +3 -0
  158. package/dist-server/service/tms-service/interface/tms-service.js.map +1 -0
  159. package/dist-server/service/tms-service/platform/index.js +18 -0
  160. package/dist-server/service/tms-service/platform/index.js.map +1 -0
  161. package/dist-server/service/tms-service/platform/versafleet-service.js +201 -0
  162. package/dist-server/service/tms-service/platform/versafleet-service.js.map +1 -0
  163. package/dist-server/service/tms-service/tms-factory.js +14 -0
  164. package/dist-server/service/tms-service/tms-factory.js.map +1 -0
  165. package/package.json +15 -15
@@ -0,0 +1,718 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.getAccessTokenCityLink = exports.getAccessTokenEfmx = exports.refreshAccessTokenNinjavan = exports.generateAccessTokenNinjavan = exports.LastMileDeliveryMutation = void 0;
16
+ const type_graphql_1 = require("type-graphql");
17
+ const typeorm_1 = require("typeorm");
18
+ const env_1 = require("@things-factory/env");
19
+ const constants_1 = require("../../constants");
20
+ const last_mile_delivery_bizplace_1 = require("../last-mile-delivery-bizplace/last-mile-delivery-bizplace");
21
+ const last_mile_delivery_bizplace_type_1 = require("../last-mile-delivery-bizplace/last-mile-delivery-bizplace-type");
22
+ const last_mile_delivery_setting_1 = require("../last-mile-delivery-setting/last-mile-delivery-setting");
23
+ const last_mile_delivery_setting_type_1 = require("../last-mile-delivery-setting/last-mile-delivery-setting-type");
24
+ const last_mile_delivery_1 = require("./last-mile-delivery");
25
+ const last_mile_delivery_type_1 = require("./last-mile-delivery-type");
26
+ const integration_base_1 = require("@things-factory/integration-base");
27
+ const env_2 = require("@things-factory/env");
28
+ const ninjavanConfig = env_2.config.get('lmdIntegrationNinjavan', {});
29
+ let LastMileDeliveryMutation = class LastMileDeliveryMutation {
30
+ async createLastMileDelivery(lastMileDelivery, context) {
31
+ const { domain, user, tx } = context.state;
32
+ return await tx.getRepository(last_mile_delivery_1.LastMileDelivery).save(Object.assign(Object.assign({}, lastMileDelivery), { domain, creator: user, updater: user }));
33
+ }
34
+ async updateLastMileDelivery(id, patch, context) {
35
+ const { domain, user, tx } = context.state;
36
+ const repository = tx.getRepository(last_mile_delivery_1.LastMileDelivery);
37
+ const lastMileDelivery = await repository.findOne({
38
+ where: { domain, name }
39
+ });
40
+ return await repository.save(Object.assign(Object.assign(Object.assign({}, lastMileDelivery), patch), { updater: user }));
41
+ }
42
+ async upsertLastMileDelivery(context, patch, mpsPatch, bizplacePatch, settingPatch) {
43
+ const { domain, user, tx } = context.state;
44
+ let lmd;
45
+ let lmdSetting;
46
+ let lmdBizplace;
47
+ const lmdRepo = tx.getRepository(last_mile_delivery_1.LastMileDelivery);
48
+ const lmdSettingRepo = tx.getRepository(last_mile_delivery_setting_1.LastMileDeliverySetting);
49
+ const lmdBizplaceRepo = tx.getRepository(last_mile_delivery_bizplace_1.LastMileDeliveryBizplace);
50
+ const lastMileDelivery = await lmdRepo.findOne({
51
+ where: { domain, id: patch === null || patch === void 0 ? void 0 : patch.id },
52
+ relations: [
53
+ 'lastMileDeliverySettings',
54
+ 'lastMileDeliverySettings.geoCountry',
55
+ 'lastMileDeliveryBizplaces',
56
+ 'lastMileDeliveryBizplaces.bizplace'
57
+ ]
58
+ });
59
+ // create record if not exist
60
+ if (!lastMileDelivery) {
61
+ let existingRecord = await lmdRepo.findOne({
62
+ where: `"name" ILIKE '${patch === null || patch === void 0 ? void 0 : patch.name}' AND "domain_id" = '${domain.id}'`
63
+ });
64
+ if (existingRecord) {
65
+ throw new Error('record exists - name cannot be duplicated.');
66
+ }
67
+ if (!settingPatch || settingPatch.length < 1) {
68
+ throw new Error('No settings have been added - At least 1 is required');
69
+ }
70
+ lmd = await lmdRepo.save(Object.assign(Object.assign(Object.assign({}, patch), { serviceType: patch.serviceType != '' ? patch.serviceType : null, domain: domain, creator: user, updater: user, status: constants_1.LMD_STATUS.ACTIVE, isTms: Object.values(constants_1.TMS_PLATFORM).includes(patch === null || patch === void 0 ? void 0 : patch.platform) }), (mpsPatch
71
+ ? {
72
+ mps: mpsPatch.mps,
73
+ consignmentWeight: mpsPatch.consignmentWeight
74
+ }
75
+ : {
76
+ mps: false,
77
+ consignmentWeight: null
78
+ })));
79
+ let id = lmd.id;
80
+ let clientId = lmd.clientId;
81
+ let secretKey = lmd.secretKey;
82
+ if (!(lmd === null || lmd === void 0 ? void 0 : lmd.accessToken)) {
83
+ switch (lmd === null || lmd === void 0 ? void 0 : lmd.platform) {
84
+ case 'CITYLINK':
85
+ await getAccessTokenCityLink(lmd.id, context);
86
+ break;
87
+ case 'EMS':
88
+ await getAccessTokenEfmx(lmd.id, lmd.clientId, lmd.secretKey, context);
89
+ break;
90
+ case 'VIETTEL_POST':
91
+ await this.getViettelTemporaryToken(id, clientId, secretKey, context);
92
+ break;
93
+ default:
94
+ break;
95
+ }
96
+ }
97
+ await settingPatch.forEach(async (lmdSettingData) => {
98
+ delete lmdSettingData.id;
99
+ let excludePostalCode = lmdSettingData.excludePostalCode;
100
+ let includePostalCode = lmdSettingData.includePostalCode;
101
+ if (lmdSettingData.excludePostalCode) {
102
+ lmdSettingData.excludePostalCode = excludePostalCode.replaceAll(' ,', ',').replaceAll(', ', ',').trim();
103
+ }
104
+ if (lmdSettingData.includePostalCode) {
105
+ lmdSettingData.includePostalCode = includePostalCode.replaceAll(' ,', ',').replaceAll(', ', ',').trim();
106
+ }
107
+ let lmds = await lmdSettingRepo.save(Object.assign(Object.assign({}, lmdSettingData), { lastMileDelivery: lmd, domain: domain, creator: user, updater: user }));
108
+ lmdSetting.push(lmds);
109
+ });
110
+ await bizplacePatch.forEach(async (lmdBizplaceData) => {
111
+ delete lmdBizplaceData.id;
112
+ let lmdb = await lmdBizplaceRepo.save(Object.assign(Object.assign({}, lmdBizplaceData), { lastMileDelivery: lmd, domain: domain, creator: user, updater: user }));
113
+ lmdBizplace.push(lmdb);
114
+ });
115
+ lmd = Object.assign(Object.assign({}, lmd), { lastMileDeliverySettings: lmdSetting, lastMileDeliveryBizplaces: lmdBizplace });
116
+ }
117
+ else {
118
+ lmd = await lmdRepo.save(Object.assign(Object.assign(Object.assign({}, patch), { serviceType: patch.serviceType !== '' ? patch.serviceType : null, isTms: Object.values(constants_1.TMS_PLATFORM).includes(patch === null || patch === void 0 ? void 0 : patch.platform), domain: domain, updater: user }), (mpsPatch
119
+ ? {
120
+ mps: mpsPatch.mps,
121
+ consignmentWeight: mpsPatch.consignmentWeight
122
+ }
123
+ : {
124
+ mps: false,
125
+ consignmentWeight: null
126
+ })));
127
+ if (!(lmd === null || lmd === void 0 ? void 0 : lmd.accessToken)) {
128
+ switch (lmd === null || lmd === void 0 ? void 0 : lmd.platform) {
129
+ case 'CITYLINK':
130
+ await getAccessTokenCityLink(lmd.id, context);
131
+ break;
132
+ case 'EMS':
133
+ await getAccessTokenEfmx(lmd.id, lmd.clientId, lmd.secretKey, context);
134
+ break;
135
+ default:
136
+ break;
137
+ }
138
+ }
139
+ let removeLMDS = lastMileDelivery.lastMileDeliverySettings.filter(existingLmdSetting => settingPatch.filter(sp => sp.id == existingLmdSetting.id).length == 0);
140
+ if (removeLMDS.length > 0)
141
+ await lmdSettingRepo.delete(removeLMDS.map(itm => itm.id));
142
+ lmdSetting = await Promise.all(settingPatch.map(async (sp) => {
143
+ if (sp.excludePostalCode) {
144
+ sp.excludePostalCode = sp.excludePostalCode.replaceAll(' ,', ',').replaceAll(', ', ',').trim();
145
+ }
146
+ if (sp.includePostalCode) {
147
+ sp.includePostalCode = sp.includePostalCode.replaceAll(' ,', ',').replaceAll(', ', ',').trim();
148
+ }
149
+ if (!(sp === null || sp === void 0 ? void 0 : sp.id)) {
150
+ delete sp.id;
151
+ }
152
+ let result = await lmdSettingRepo.save(Object.assign(Object.assign({}, sp), { lastMileDelivery: lmd, domain: domain, creator: user, updater: user }));
153
+ return result;
154
+ }));
155
+ let removeLMDB = lastMileDelivery.lastMileDeliveryBizplaces.filter(existingLmdBizplace => bizplacePatch.filter(bp => bp.id == existingLmdBizplace.id).length == 0);
156
+ if (removeLMDB.length > 0)
157
+ await lmdBizplaceRepo.delete(removeLMDB.map(itm => itm.id));
158
+ lmdBizplace = await Promise.all(bizplacePatch.map(async (bp) => {
159
+ if (!(bp === null || bp === void 0 ? void 0 : bp.id)) {
160
+ delete bp.id;
161
+ }
162
+ let resultLMDB = await lmdBizplaceRepo.save(Object.assign(Object.assign({}, bp), { lastMileDelivery: lmd, domain: domain, creator: user, updater: user }));
163
+ return resultLMDB;
164
+ }));
165
+ }
166
+ return lmd;
167
+ }
168
+ async updateMultipleLastMileDelivery(patches, context) {
169
+ const { domain, user, tx } = context.state;
170
+ let results = [];
171
+ const _createRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === '+');
172
+ const _updateRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === 'M');
173
+ const lastMileDeliveryRepo = tx.getRepository(last_mile_delivery_1.LastMileDelivery);
174
+ if (_createRecords.length > 0) {
175
+ for (let i = 0; i < _createRecords.length; i++) {
176
+ const newRecord = _createRecords[i];
177
+ const result = await lastMileDeliveryRepo.save(Object.assign(Object.assign({}, newRecord), { domain: domain, status: 'inactive', creator: user, updater: user }));
178
+ results.push(Object.assign(Object.assign({}, result), { cuFlag: '+' }));
179
+ }
180
+ }
181
+ if (_updateRecords.length > 0) {
182
+ for (let i = 0; i < _updateRecords.length; i++) {
183
+ const newRecord = _updateRecords[i];
184
+ const lastMileDelivery = await lastMileDeliveryRepo.findOne({ domain, id: newRecord.id });
185
+ const result = await lastMileDeliveryRepo.save(Object.assign(Object.assign(Object.assign({}, lastMileDelivery), newRecord), { updater: user }));
186
+ results.push(Object.assign(Object.assign({}, result), { cuFlag: 'M' }));
187
+ }
188
+ }
189
+ return results;
190
+ }
191
+ async deleteLastMileDelivery(id, context) {
192
+ const { domain, tx } = context.state;
193
+ await tx.getRepository(last_mile_delivery_1.LastMileDelivery).delete({ domain, id });
194
+ return true;
195
+ }
196
+ async deleteLastMileDeliveries(ids, context) {
197
+ const { domain, user, tx } = context.state;
198
+ let lastMileDeliveries = await tx.getRepository(last_mile_delivery_1.LastMileDelivery).find({
199
+ where: { id: (0, typeorm_1.In)(ids) }
200
+ });
201
+ lastMileDeliveries = lastMileDeliveries.map((lastMileDelivery) => {
202
+ return Object.assign(Object.assign({}, lastMileDelivery), { status: constants_1.LMD_STATUS.TERMINATED, updater: user });
203
+ });
204
+ await tx.getRepository(last_mile_delivery_1.LastMileDelivery).save(lastMileDeliveries);
205
+ return true;
206
+ }
207
+ async generateAccessTokenEfmx(id, clientId, secretKey, context) {
208
+ const { tx } = context.state;
209
+ let lastMileDelivery = await tx.getRepository(last_mile_delivery_1.LastMileDelivery).findOne({
210
+ where: { id }
211
+ });
212
+ await getAccessTokenEfmx(id, clientId, secretKey, context);
213
+ return true;
214
+ }
215
+ async getAccessTokenNinjavan(id, code, context) {
216
+ const { tx } = context.state;
217
+ let lastMileDelivery = await tx.getRepository(last_mile_delivery_1.LastMileDelivery).findOne({
218
+ where: { id }
219
+ });
220
+ await generateAccessTokenNinjavan(id, code, context);
221
+ return true;
222
+ }
223
+ async refreshAccessTokenNinjavan(id, context) {
224
+ const { tx } = context.state;
225
+ let lastMileDelivery = await tx.getRepository(last_mile_delivery_1.LastMileDelivery).findOne({
226
+ where: { id }
227
+ });
228
+ return true;
229
+ }
230
+ async getViettelTemporaryToken(id, clientId, secretKey, context) {
231
+ const { tx } = context.state;
232
+ let lastMileDelivery = await tx.getRepository(last_mile_delivery_1.LastMileDelivery).findOne({
233
+ where: { id }
234
+ });
235
+ try {
236
+ const baseUrl = `https://partner.viettelpost.vn`;
237
+ const apiPath = '/v2/user/Login';
238
+ const body = {
239
+ USERNAME: lastMileDelivery.clientId,
240
+ PASSWORD: lastMileDelivery.secretKey
241
+ };
242
+ const response = await fetch(baseUrl + apiPath, {
243
+ method: 'post',
244
+ headers: {
245
+ 'Content-Type': 'application/json'
246
+ },
247
+ body: JSON.stringify(body)
248
+ });
249
+ const result = await response.json();
250
+ if (response.status != 200) {
251
+ throw new Error(result.error.message);
252
+ }
253
+ const { token: temporaryToken } = result.data;
254
+ await this.generateViettelAccessToken(id, temporaryToken, context);
255
+ }
256
+ catch (e) {
257
+ env_1.logger.error(`[auto_refreshToken_log] ${e.message}`);
258
+ }
259
+ return true;
260
+ }
261
+ async generateViettelAccessToken(id, temporaryToken, context) {
262
+ const { tx } = context.state;
263
+ let lastMileDelivery = await tx.getRepository(last_mile_delivery_1.LastMileDelivery).findOne({
264
+ where: { id }
265
+ });
266
+ try {
267
+ const baseUrl = `https://partner.viettelpost.vn`;
268
+ const apiPath = '/v2/user/ownerconnect';
269
+ const body = {
270
+ USERNAME: lastMileDelivery.clientId,
271
+ PASSWORD: lastMileDelivery.secretKey
272
+ };
273
+ const response = await fetch(baseUrl + apiPath, {
274
+ method: 'post',
275
+ headers: {
276
+ token: temporaryToken,
277
+ 'Content-Type': 'application/json',
278
+ Cookie: 'SERVERID=A'
279
+ },
280
+ body: JSON.stringify(body)
281
+ });
282
+ const result = await response.json();
283
+ if (response.status != 200) {
284
+ throw new Error(result.error.message);
285
+ }
286
+ const { token: accessToken } = result.data;
287
+ await tx.getRepository(last_mile_delivery_1.LastMileDelivery).update({ id: lastMileDelivery.id }, { accessToken: accessToken });
288
+ }
289
+ catch (e) {
290
+ env_1.logger.error(`[auto_refreshToken_log] ${e.message}`);
291
+ }
292
+ return true;
293
+ }
294
+ async disconnectNinjavanAcc(id, context) {
295
+ const { tx } = context.state;
296
+ let lastMileDelivery = await tx.getRepository(last_mile_delivery_1.LastMileDelivery).findOne({
297
+ where: { id }
298
+ });
299
+ try {
300
+ const sandbox = lastMileDelivery.staging ? '-sandbox' : '';
301
+ const baseUrl = `https://api${sandbox}.ninjavan.co/global`;
302
+ const apiPath = '/aaa/1.0/logout';
303
+ let accessToken = lastMileDelivery.accessToken;
304
+ if (accessToken == null || accessToken == '')
305
+ throw new Error('Invalid access token');
306
+ const response = await fetch(baseUrl + apiPath, {
307
+ method: 'post',
308
+ headers: {
309
+ Authorization: `Bearer ${accessToken}`
310
+ }
311
+ });
312
+ if (response.status != 204) {
313
+ throw new Error('Unable to disconnect the account');
314
+ }
315
+ await tx
316
+ .getRepository(last_mile_delivery_1.LastMileDelivery)
317
+ .update({ id: lastMileDelivery.id }, { accessToken: '', refreshToken: '', expiresIn: null, status: 'inactive' });
318
+ return true;
319
+ }
320
+ catch (e) {
321
+ env_1.logger.error(`[auto_refreshToken_log] ${e.message}`);
322
+ throw new Error(e.message);
323
+ }
324
+ }
325
+ };
326
+ __decorate([
327
+ (0, type_graphql_1.Directive)('@transaction'),
328
+ (0, type_graphql_1.Mutation)(returns => last_mile_delivery_1.LastMileDelivery, { description: 'To create new LastMileDelivery' }),
329
+ __param(0, (0, type_graphql_1.Arg)('lastMileDelivery')),
330
+ __param(1, (0, type_graphql_1.Ctx)()),
331
+ __metadata("design:type", Function),
332
+ __metadata("design:paramtypes", [last_mile_delivery_type_1.NewLastMileDelivery, Object]),
333
+ __metadata("design:returntype", Promise)
334
+ ], LastMileDeliveryMutation.prototype, "createLastMileDelivery", null);
335
+ __decorate([
336
+ (0, type_graphql_1.Directive)('@transaction'),
337
+ (0, type_graphql_1.Mutation)(returns => last_mile_delivery_1.LastMileDelivery, { description: 'To modify LastMileDelivery information' }),
338
+ __param(0, (0, type_graphql_1.Arg)('id')),
339
+ __param(1, (0, type_graphql_1.Arg)('patch')),
340
+ __param(2, (0, type_graphql_1.Ctx)()),
341
+ __metadata("design:type", Function),
342
+ __metadata("design:paramtypes", [String, last_mile_delivery_type_1.LastMileDeliveryPatch, Object]),
343
+ __metadata("design:returntype", Promise)
344
+ ], LastMileDeliveryMutation.prototype, "updateLastMileDelivery", null);
345
+ __decorate([
346
+ (0, type_graphql_1.Directive)('@transaction'),
347
+ (0, type_graphql_1.Mutation)(returns => last_mile_delivery_1.LastMileDelivery, { description: 'To modify LastMileDelivery information' }),
348
+ __param(0, (0, type_graphql_1.Ctx)()),
349
+ __param(1, (0, type_graphql_1.Arg)('lastMileDeliveryPatch', type => last_mile_delivery_type_1.LastMileDeliveryPatch)),
350
+ __param(2, (0, type_graphql_1.Arg)('lastMileDeliveryMpsPatch', type => last_mile_delivery_type_1.LastMileDeliveryMpsPatch, { nullable: true })),
351
+ __param(3, (0, type_graphql_1.Arg)('lastMileDeliverySettingPatch', type => [last_mile_delivery_setting_type_1.LastMileDeliverySettingPatch], { nullable: true })),
352
+ __param(3, (0, type_graphql_1.Arg)('lastMileDeliveryBizplacePatch', type => [last_mile_delivery_bizplace_type_1.LastMileDeliveryBizplacePatch], { nullable: true })),
353
+ __metadata("design:type", Function),
354
+ __metadata("design:paramtypes", [Object, last_mile_delivery_type_1.LastMileDeliveryPatch,
355
+ last_mile_delivery_type_1.LastMileDeliveryMpsPatch, Array, Array]),
356
+ __metadata("design:returntype", Promise)
357
+ ], LastMileDeliveryMutation.prototype, "upsertLastMileDelivery", null);
358
+ __decorate([
359
+ (0, type_graphql_1.Directive)('@transaction'),
360
+ (0, type_graphql_1.Mutation)(returns => [last_mile_delivery_1.LastMileDelivery], { description: "To modify multiple LastMileDeliveries' information" }),
361
+ __param(0, (0, type_graphql_1.Arg)('patches', type => [last_mile_delivery_type_1.LastMileDeliveryPatch])),
362
+ __param(1, (0, type_graphql_1.Ctx)()),
363
+ __metadata("design:type", Function),
364
+ __metadata("design:paramtypes", [Array, Object]),
365
+ __metadata("design:returntype", Promise)
366
+ ], LastMileDeliveryMutation.prototype, "updateMultipleLastMileDelivery", null);
367
+ __decorate([
368
+ (0, type_graphql_1.Directive)('@transaction'),
369
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete LastMileDelivery' }),
370
+ __param(0, (0, type_graphql_1.Arg)('id')),
371
+ __param(1, (0, type_graphql_1.Ctx)()),
372
+ __metadata("design:type", Function),
373
+ __metadata("design:paramtypes", [String, Object]),
374
+ __metadata("design:returntype", Promise)
375
+ ], LastMileDeliveryMutation.prototype, "deleteLastMileDelivery", null);
376
+ __decorate([
377
+ (0, type_graphql_1.Directive)('@transaction'),
378
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete multiple lastMileDeliverys' }),
379
+ __param(0, (0, type_graphql_1.Arg)('ids', type => [String])),
380
+ __param(1, (0, type_graphql_1.Ctx)()),
381
+ __metadata("design:type", Function),
382
+ __metadata("design:paramtypes", [Array, Object]),
383
+ __metadata("design:returntype", Promise)
384
+ ], LastMileDeliveryMutation.prototype, "deleteLastMileDeliveries", null);
385
+ __decorate([
386
+ (0, type_graphql_1.Directive)('@transaction'),
387
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To get access token for efmx' }),
388
+ __param(0, (0, type_graphql_1.Arg)('id', type => String)),
389
+ __param(1, (0, type_graphql_1.Arg)('clientId', type => String)),
390
+ __param(2, (0, type_graphql_1.Arg)('secretKey', type => String)),
391
+ __param(3, (0, type_graphql_1.Ctx)()),
392
+ __metadata("design:type", Function),
393
+ __metadata("design:paramtypes", [String, String, String, Object]),
394
+ __metadata("design:returntype", Promise)
395
+ ], LastMileDeliveryMutation.prototype, "generateAccessTokenEfmx", null);
396
+ __decorate([
397
+ (0, type_graphql_1.Directive)('@transaction'),
398
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To get access token for ninjavan' }),
399
+ __param(0, (0, type_graphql_1.Arg)('id', type => String)),
400
+ __param(1, (0, type_graphql_1.Arg)('code', type => String)),
401
+ __param(2, (0, type_graphql_1.Ctx)()),
402
+ __metadata("design:type", Function),
403
+ __metadata("design:paramtypes", [String, String, Object]),
404
+ __metadata("design:returntype", Promise)
405
+ ], LastMileDeliveryMutation.prototype, "getAccessTokenNinjavan", null);
406
+ __decorate([
407
+ (0, type_graphql_1.Directive)('@transaction'),
408
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To get access token for ninjavan' }),
409
+ __param(0, (0, type_graphql_1.Arg)('id', type => String)),
410
+ __param(1, (0, type_graphql_1.Ctx)()),
411
+ __metadata("design:type", Function),
412
+ __metadata("design:paramtypes", [String, Object]),
413
+ __metadata("design:returntype", Promise)
414
+ ], LastMileDeliveryMutation.prototype, "refreshAccessTokenNinjavan", null);
415
+ __decorate([
416
+ (0, type_graphql_1.Directive)('@transaction'),
417
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To get temporary token for viettel post' }),
418
+ __param(0, (0, type_graphql_1.Arg)('id', type => String)),
419
+ __param(1, (0, type_graphql_1.Arg)('clientId', type => String)),
420
+ __param(2, (0, type_graphql_1.Arg)('secretKey', type => String)),
421
+ __param(3, (0, type_graphql_1.Ctx)()),
422
+ __metadata("design:type", Function),
423
+ __metadata("design:paramtypes", [String, String, String, Object]),
424
+ __metadata("design:returntype", Promise)
425
+ ], LastMileDeliveryMutation.prototype, "getViettelTemporaryToken", null);
426
+ __decorate([
427
+ (0, type_graphql_1.Directive)('@transaction'),
428
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To get permanent access token for viettel post' }),
429
+ __param(0, (0, type_graphql_1.Arg)('id', type => String)),
430
+ __param(1, (0, type_graphql_1.Arg)('temporaryToken', type => String)),
431
+ __param(2, (0, type_graphql_1.Ctx)()),
432
+ __metadata("design:type", Function),
433
+ __metadata("design:paramtypes", [String, String, Object]),
434
+ __metadata("design:returntype", Promise)
435
+ ], LastMileDeliveryMutation.prototype, "generateViettelAccessToken", null);
436
+ __decorate([
437
+ (0, type_graphql_1.Directive)('@transaction'),
438
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'Log out Ninjavan Account' }),
439
+ __param(0, (0, type_graphql_1.Arg)('id', type => String)),
440
+ __param(1, (0, type_graphql_1.Ctx)()),
441
+ __metadata("design:type", Function),
442
+ __metadata("design:paramtypes", [String, Object]),
443
+ __metadata("design:returntype", Promise)
444
+ ], LastMileDeliveryMutation.prototype, "disconnectNinjavanAcc", null);
445
+ LastMileDeliveryMutation = __decorate([
446
+ (0, type_graphql_1.Resolver)(last_mile_delivery_1.LastMileDelivery)
447
+ ], LastMileDeliveryMutation);
448
+ exports.LastMileDeliveryMutation = LastMileDeliveryMutation;
449
+ async function generateAccessTokenNinjavan(id, code, context) {
450
+ const { tx } = context.state;
451
+ let lastMileDelivery = await tx.getRepository(last_mile_delivery_1.LastMileDelivery).findOne({
452
+ where: { id }
453
+ });
454
+ let countryCode = (lastMileDelivery === null || lastMileDelivery === void 0 ? void 0 : lastMileDelivery.countryCode) ? lastMileDelivery.countryCode : 'MY';
455
+ try {
456
+ const sandbox = lastMileDelivery.staging ? '-sandbox' : ' ';
457
+ const baseUrl = `https://aaa${sandbox}.ninjavan.co/` + countryCode;
458
+ const apiPath = '/1.0/oauth/token';
459
+ const body = {
460
+ client_id: ninjavanConfig.clientId,
461
+ client_secret: ninjavanConfig.secretKey,
462
+ grant_type: 'authorization_code',
463
+ code
464
+ };
465
+ const response = await fetch(baseUrl + apiPath, {
466
+ method: 'post',
467
+ body: JSON.stringify(body)
468
+ });
469
+ const result = await response.json();
470
+ if (response.status != 200) {
471
+ throw new Error(result.error.message);
472
+ }
473
+ const { access_token: accessToken, refresh_token: refreshToken, expires_in: expiresIn } = result;
474
+ const currentTimestamp = Math.floor(Date.now() / 1000);
475
+ const expiryTimestamp = currentTimestamp + expiresIn;
476
+ await tx
477
+ .getRepository(last_mile_delivery_1.LastMileDelivery)
478
+ .update({ id: lastMileDelivery.id }, { accessToken: accessToken, refreshToken: refreshToken, expiresIn: expiryTimestamp, status: 'active' });
479
+ return true;
480
+ }
481
+ catch (e) {
482
+ env_1.logger.error(`[auto_accessToken_log] ${e.message}`);
483
+ return false;
484
+ }
485
+ }
486
+ exports.generateAccessTokenNinjavan = generateAccessTokenNinjavan;
487
+ async function refreshAccessTokenNinjavan(id, context) {
488
+ const { tx } = context.state;
489
+ let lastMileDelivery = await tx.getRepository(last_mile_delivery_1.LastMileDelivery).findOne({
490
+ where: { id }
491
+ });
492
+ try {
493
+ const sandbox = lastMileDelivery.staging ? '-sandbox' : ' ';
494
+ const baseUrl = `https://aaa${sandbox}.ninjavan.co/` + lastMileDelivery.countryCode;
495
+ const apiPath = '/1.0/oauth/token';
496
+ const body = {
497
+ client_id: ninjavanConfig.clientId,
498
+ client_secret: ninjavanConfig.secretKey,
499
+ grant_type: 'refresh_token',
500
+ refresh_token: lastMileDelivery.refreshToken
501
+ };
502
+ const response = await fetch(baseUrl + apiPath, {
503
+ method: 'post',
504
+ body: JSON.stringify(body)
505
+ });
506
+ const result = await response.json();
507
+ if (response.status != 200) {
508
+ try {
509
+ (0, integration_base_1.createPayloadLog)('error-access-token-ninjavan', baseUrl + apiPath, {
510
+ headers: {
511
+ 'Content-Type': 'application/json'
512
+ },
513
+ body: {
514
+ client_id: ninjavanConfig.clientId,
515
+ client_secret: ninjavanConfig.secretKey,
516
+ grant_type: 'refresh_token',
517
+ refresh_token: lastMileDelivery.refreshToken
518
+ }
519
+ }, result, {
520
+ state: { domain: null }
521
+ });
522
+ throw new Error(result.error.message);
523
+ }
524
+ catch (e) {
525
+ console.log(e.message);
526
+ }
527
+ }
528
+ else {
529
+ try {
530
+ (0, integration_base_1.createPayloadLog)('access-token-ninjavan', baseUrl + apiPath, {
531
+ headers: {
532
+ 'Content-Type': 'application/json'
533
+ },
534
+ body: {
535
+ client_id: ninjavanConfig.clientId,
536
+ client_secret: ninjavanConfig.secretKey,
537
+ grant_type: 'refresh_token',
538
+ refresh_token: lastMileDelivery.refreshToken
539
+ }
540
+ }, result, {
541
+ state: { domain: null }
542
+ });
543
+ }
544
+ catch (e) { }
545
+ }
546
+ const { refresh_token: refreshToken, expires_in: expiresIn, access_token: accessToken } = result;
547
+ const currentTimestamp = Math.floor(Date.now() / 1000);
548
+ const expiryTimestamp = currentTimestamp + expiresIn;
549
+ lastMileDelivery = await tx
550
+ .getRepository(last_mile_delivery_1.LastMileDelivery)
551
+ .update({ id: lastMileDelivery.id }, { accessToken: accessToken, refreshToken: refreshToken, expiresIn: expiryTimestamp });
552
+ lastMileDelivery = await tx.getRepository(last_mile_delivery_1.LastMileDelivery).findOne({
553
+ where: { id }
554
+ });
555
+ }
556
+ catch (e) {
557
+ env_1.logger.error(`[auto_refreshToken_log] ${e.message}`);
558
+ }
559
+ return lastMileDelivery;
560
+ }
561
+ exports.refreshAccessTokenNinjavan = refreshAccessTokenNinjavan;
562
+ async function getAccessTokenEfmx(id, clientId, secretKey, context) {
563
+ const { tx } = context.state;
564
+ let lastMileDelivery = await tx.getRepository(last_mile_delivery_1.LastMileDelivery).findOne({
565
+ where: { id }
566
+ });
567
+ try {
568
+ const staging = lastMileDelivery.staging ? 'stg' : '';
569
+ const baseUrl = `https://client${staging}.fmx.asia`;
570
+ const apiPath = '/api/tokenauth/authenticate';
571
+ const body = {
572
+ userNameOrEmailAddress: lastMileDelivery.clientId,
573
+ password: lastMileDelivery.secretKey
574
+ };
575
+ const response = await fetch(baseUrl + apiPath, {
576
+ method: 'post',
577
+ headers: {
578
+ 'Content-Type': 'application/json'
579
+ },
580
+ body: JSON.stringify(body)
581
+ });
582
+ const result = await response.json();
583
+ if (response.status != 200) {
584
+ try {
585
+ (0, integration_base_1.createPayloadLog)('error-access-token-ems', apiPath, {
586
+ headers: {
587
+ 'Content-Type': 'application/json'
588
+ },
589
+ body: {
590
+ userNameOrEmailAddress: lastMileDelivery.clientId,
591
+ password: lastMileDelivery.secretKey
592
+ }
593
+ }, result, {
594
+ state: { domain: null }
595
+ });
596
+ throw new Error(result.error.message);
597
+ }
598
+ catch (e) {
599
+ console.log(e.message);
600
+ }
601
+ }
602
+ else {
603
+ try {
604
+ (0, integration_base_1.createPayloadLog)('access-token-ems', baseUrl + apiPath, {
605
+ headers: {
606
+ 'Content-Type': 'application/json'
607
+ },
608
+ body: {
609
+ userNameOrEmailAddress: lastMileDelivery.clientId,
610
+ password: lastMileDelivery.secretKey
611
+ }
612
+ }, result, {
613
+ state: { domain: null }
614
+ });
615
+ }
616
+ catch (e) { }
617
+ }
618
+ const { refreshToken: refreshToken, expireInSeconds: expiresIn, accessToken: accessToken } = result.result;
619
+ lastMileDelivery.refreshToken = refreshToken;
620
+ const currentTimestamp = Math.floor(Date.now() / 1000);
621
+ const expiryTimestamp = currentTimestamp + expiresIn;
622
+ lastMileDelivery.expiresIn = expiryTimestamp;
623
+ lastMileDelivery.accessToken = accessToken;
624
+ lastMileDelivery = await tx
625
+ .getRepository(last_mile_delivery_1.LastMileDelivery)
626
+ .update({ id: lastMileDelivery.id }, { accessToken: accessToken, refreshToken: refreshToken, expiresIn: expiryTimestamp });
627
+ lastMileDelivery = await tx.getRepository(last_mile_delivery_1.LastMileDelivery).findOne({
628
+ where: { id }
629
+ });
630
+ }
631
+ catch (e) {
632
+ env_1.logger.error(`[auto_refreshToken_log] ${e.message}`);
633
+ }
634
+ return lastMileDelivery;
635
+ }
636
+ exports.getAccessTokenEfmx = getAccessTokenEfmx;
637
+ async function getAccessTokenCityLink(id, context) {
638
+ const { tx } = context.state;
639
+ let lastMileDelivery = await tx.getRepository(last_mile_delivery_1.LastMileDelivery).findOne({ where: { id } });
640
+ try {
641
+ const staging = lastMileDelivery.staging;
642
+ const currentDate = new Date();
643
+ const transactionIdentifier = `CTL${currentDate.getFullYear()}${currentDate.getMonth() + 1}${currentDate.getDate()}${currentDate.getHours()}${currentDate.getMinutes()}${currentDate.getSeconds()}${currentDate.getMilliseconds()}`;
644
+ const accountNumber = lastMileDelivery === null || lastMileDelivery === void 0 ? void 0 : lastMileDelivery.accountNumber;
645
+ const meterNumber = lastMileDelivery === null || lastMileDelivery === void 0 ? void 0 : lastMileDelivery.prefix;
646
+ const companyCode = lastMileDelivery === null || lastMileDelivery === void 0 ? void 0 : lastMileDelivery.clientId;
647
+ const url = staging
648
+ ? 'https://devsvr2019a.citylinkexpress.com:21145/CitylinkService.svc/rest/requestToken'
649
+ : 'https://2802rj02.citylinkexpress.com:9289/CitylinkService.svc/rest/requestToken';
650
+ const response = await fetch(url, {
651
+ method: 'post',
652
+ headers: {
653
+ 'Content-Type': 'application/json',
654
+ CompanyCode: companyCode,
655
+ AccountNumber: accountNumber,
656
+ MeterNumber: meterNumber,
657
+ TransactionIdentifier: transactionIdentifier
658
+ }
659
+ });
660
+ const result = await response.json();
661
+ if (result.returncode != '00') {
662
+ try {
663
+ (0, integration_base_1.createPayloadLog)('error-access-token-citylink', url, {
664
+ headers: {
665
+ 'Content-Type': 'application/json',
666
+ CompanyCode: companyCode,
667
+ AccountNumber: accountNumber,
668
+ MeterNumber: meterNumber,
669
+ TransactionIdentifier: transactionIdentifier
670
+ }
671
+ }, result, {
672
+ state: { domain: null }
673
+ });
674
+ throw new Error(result.returnmessage);
675
+ }
676
+ catch (e) {
677
+ console.log(e.message);
678
+ }
679
+ }
680
+ else {
681
+ try {
682
+ (0, integration_base_1.createPayloadLog)('access-token-citylink', url, {
683
+ headers: {
684
+ 'Content-Type': 'application/json',
685
+ CompanyCode: companyCode,
686
+ AccountNumber: accountNumber,
687
+ MeterNumber: meterNumber,
688
+ TransactionIdentifier: transactionIdentifier
689
+ }
690
+ }, result, {
691
+ state: { domain: null }
692
+ });
693
+ }
694
+ catch (e) { }
695
+ }
696
+ const { expiryDate: expiryDate, token: token } = result;
697
+ let splitDate = expiryDate.split('/');
698
+ let dd = splitDate[0];
699
+ let mm = splitDate[1];
700
+ let yy = splitDate[2];
701
+ let formatDate = mm + '/' + dd + '/' + yy;
702
+ let newExpiryDate = new Date(formatDate).toISOString();
703
+ lastMileDelivery.accessToken = token;
704
+ lastMileDelivery.expiresIn = newExpiryDate;
705
+ lastMileDelivery = await tx
706
+ .getRepository(last_mile_delivery_1.LastMileDelivery)
707
+ .update({ id: lastMileDelivery.id }, { accessToken: token, expiresIn: newExpiryDate });
708
+ lastMileDelivery = await tx.getRepository(last_mile_delivery_1.LastMileDelivery).findOne({
709
+ where: { id }
710
+ });
711
+ }
712
+ catch (e) {
713
+ env_1.logger.error(`[city-link-accessToken-log] ${e.message}`);
714
+ }
715
+ return lastMileDelivery;
716
+ }
717
+ exports.getAccessTokenCityLink = getAccessTokenCityLink;
718
+ //# sourceMappingURL=last-mile-delivery-mutation.js.map