@vendit-dev/thirdparty-adapters 0.4.1 → 0.7.0
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/.tool-versions +1 -0
- package/lib/adapters/amanoKorea.d.ts +1 -1
- package/lib/adapters/amanoKorea.js +11 -13
- package/lib/adapters/parking/amano.d.ts +19 -0
- package/lib/adapters/parking/amano.js +25 -0
- package/lib/adapters/parking/nicePark.d.ts +20 -0
- package/lib/adapters/parking/nicePark.js +150 -0
- package/lib/adapters/parking/parkingThirdParty.type.d.ts +36 -0
- package/lib/adapters/parking/parkingThirdParty.type.js +9 -0
- package/lib/adapters/parking/parkingThridPartyCaller.d.ts +12 -0
- package/lib/adapters/parking/parkingThridPartyCaller.js +148 -0
- package/lib/adapters/parking/parkingThridPartyCaller.type.d.ts +4 -0
- package/lib/adapters/parking/parkingThridPartyCaller.type.js +31 -0
- package/lib/adapters/sanhaWings.d.ts +4 -4
- package/lib/adapters/sanhaWings.js +20 -20
- package/lib/adapters/smartAccess.d.ts +4 -4
- package/lib/adapters/smartAccess.js +27 -27
- package/lib/adapters/themrIoT.d.ts +56 -53
- package/lib/adapters/themrIoT.js +7 -7
- package/lib/index.d.ts +3 -1
- package/lib/index.js +5 -1
- package/lib/types/amanoKorea.d.ts +7 -7
- package/lib/utils/mutex.js +4 -4
- package/package.json +8 -4
package/.tool-versions
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
nodejs 16.20.1
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { UserServiceGrpcCaller } from '@vendit-dev/utility-modules';
|
|
2
2
|
import { AmanoHttpResponse, DeletePreDiscountInfoInput, DeletePreDiscountInfoResponse, FeeCarSearchInput, GetFeeCarSearchResponse, GetPreDiscountListInfoResponse, InsertPreDiscountInfoInput, InsertPreDiscountInfoResponse, PreDiscountListInfoInput, UpdatePreDiscountInfoInput, UpdatePreDiscountInfoResponse } from '../types/amanoKorea';
|
|
3
3
|
import MutexLock from '../utils/mutex';
|
|
4
|
-
|
|
4
|
+
type VenditAmanoKoreaAuthInfo = {
|
|
5
5
|
scope: string;
|
|
6
6
|
credential: {
|
|
7
7
|
lotAreaNo: string;
|
|
@@ -25,7 +25,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
25
25
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
26
|
function step(op) {
|
|
27
27
|
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
-
while (_) try {
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
29
|
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
30
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
31
|
switch (op[0]) {
|
|
@@ -54,8 +54,8 @@ var node_fetch_1 = __importDefault(require("node-fetch"));
|
|
|
54
54
|
var mutex_1 = __importDefault(require("../utils/mutex"));
|
|
55
55
|
var AmanoKoreaAdapter = /** @class */ (function () {
|
|
56
56
|
function AmanoKoreaAdapter(_a) {
|
|
57
|
-
var _this = this;
|
|
58
57
|
var authenticator = _a.authenticator, redis = _a.redis;
|
|
58
|
+
var _this = this;
|
|
59
59
|
this.API_PORT = 9948;
|
|
60
60
|
this.PROVIDER_KEY = 'AmanoKorea';
|
|
61
61
|
// base64
|
|
@@ -84,7 +84,7 @@ var AmanoKoreaAdapter = /** @class */ (function () {
|
|
|
84
84
|
this.getAccommodationAuthInfo = function (_a) {
|
|
85
85
|
var accommodationId = _a.accommodationId;
|
|
86
86
|
return __awaiter(_this, void 0, void 0, function () {
|
|
87
|
-
var existingAuth, parsedCredential, _b, authorization, apiHost, lotAreaNo, discCodeNo, lockId, lockHash, newAuth, parsedCredential, err_1;
|
|
87
|
+
var existingAuth, parsedCredential, _b, authorization, apiHost, lotAreaNo, discCodeNo, apiPort, lockId, lockHash, newAuth, parsedCredential, err_1;
|
|
88
88
|
return __generator(this, function (_c) {
|
|
89
89
|
switch (_c.label) {
|
|
90
90
|
case 0: return [4 /*yield*/, this.redis.get(AmanoKoreaAdapter.indexAccommodation({ accommodationId: accommodationId }))];
|
|
@@ -93,17 +93,18 @@ var AmanoKoreaAdapter = /** @class */ (function () {
|
|
|
93
93
|
if (existingAuth) {
|
|
94
94
|
parsedCredential = this.parseJSONSafe(existingAuth);
|
|
95
95
|
if (parsedCredential === null || parsedCredential === void 0 ? void 0 : parsedCredential.credential) {
|
|
96
|
-
_b = this.parseJSONSafe(parsedCredential.credential), authorization = _b.authorization, apiHost = _b.apiHost, lotAreaNo = _b.lotAreaNo, discCodeNo = _b.discCodeNo;
|
|
96
|
+
_b = this.parseJSONSafe(parsedCredential.credential), authorization = _b.authorization, apiHost = _b.apiHost, lotAreaNo = _b.lotAreaNo, discCodeNo = _b.discCodeNo, apiPort = _b.apiPort;
|
|
97
97
|
this.setAuthorization({
|
|
98
98
|
authorization: authorization,
|
|
99
99
|
});
|
|
100
100
|
this.lotAreaNo = lotAreaNo;
|
|
101
101
|
this.discCodeNo = discCodeNo;
|
|
102
102
|
this.API_HOST = apiHost;
|
|
103
|
+
this.API_PORT = apiPort;
|
|
103
104
|
}
|
|
104
105
|
return [2 /*return*/, this.parseJSONSafe(existingAuth)];
|
|
105
106
|
}
|
|
106
|
-
lockId = "AMANO-HKEY|"
|
|
107
|
+
lockId = "AMANO-HKEY|".concat(accommodationId);
|
|
107
108
|
return [4 /*yield*/, this.mutexLock.getMutexLock(lockId)];
|
|
108
109
|
case 2:
|
|
109
110
|
lockHash = _c.sent();
|
|
@@ -166,7 +167,7 @@ var AmanoKoreaAdapter = /** @class */ (function () {
|
|
|
166
167
|
_b.label = 1;
|
|
167
168
|
case 1:
|
|
168
169
|
_b.trys.push([1, 4, , 5]);
|
|
169
|
-
return [4 /*yield*/, node_fetch_1.default(this.API_HOST
|
|
170
|
+
return [4 /*yield*/, (0, node_fetch_1.default)("".concat(this.API_HOST, ":").concat(this.API_PORT, "/interop/").concat(directory), {
|
|
170
171
|
method: 'POST',
|
|
171
172
|
headers: {
|
|
172
173
|
'Content-Type': 'application/json',
|
|
@@ -212,8 +213,7 @@ var AmanoKoreaAdapter = /** @class */ (function () {
|
|
|
212
213
|
_a = this, lotAreaNo = _a.lotAreaNo, discCodeNo = _a.discCodeNo;
|
|
213
214
|
return [2 /*return*/, this.callAPI({
|
|
214
215
|
directory: 'getPreDiscountListInfo.do',
|
|
215
|
-
resources: __assign(__assign({}, resources), { lotAreaNo: lotAreaNo,
|
|
216
|
-
discCodeNo: discCodeNo }),
|
|
216
|
+
resources: __assign(__assign({}, resources), { lotAreaNo: lotAreaNo, discCodeNo: discCodeNo }),
|
|
217
217
|
})];
|
|
218
218
|
});
|
|
219
219
|
}); };
|
|
@@ -226,8 +226,7 @@ var AmanoKoreaAdapter = /** @class */ (function () {
|
|
|
226
226
|
_b = this, lotAreaNo = _b.lotAreaNo, discCodeNo = _b.discCodeNo;
|
|
227
227
|
return [2 /*return*/, this.callAPI({
|
|
228
228
|
directory: 'insertPreDiscountInfo.do',
|
|
229
|
-
resources: __assign(__assign({}, resources), { lotAreaNo: lotAreaNo,
|
|
230
|
-
discCodeNo: discCodeNo }),
|
|
229
|
+
resources: __assign(__assign({}, resources), { lotAreaNo: lotAreaNo, discCodeNo: discCodeNo }),
|
|
231
230
|
})];
|
|
232
231
|
});
|
|
233
232
|
});
|
|
@@ -241,8 +240,7 @@ var AmanoKoreaAdapter = /** @class */ (function () {
|
|
|
241
240
|
_b = this, lotAreaNo = _b.lotAreaNo, discCodeNo = _b.discCodeNo;
|
|
242
241
|
return [2 /*return*/, this.callAPI({
|
|
243
242
|
directory: 'updatePreDiscountInfo.do',
|
|
244
|
-
resources: __assign(__assign({}, resources), { lotAreaNo: lotAreaNo,
|
|
245
|
-
discCodeNo: discCodeNo }),
|
|
243
|
+
resources: __assign(__assign({}, resources), { lotAreaNo: lotAreaNo, discCodeNo: discCodeNo }),
|
|
246
244
|
})];
|
|
247
245
|
});
|
|
248
246
|
});
|
|
@@ -285,7 +283,7 @@ var AmanoKoreaAdapter = /** @class */ (function () {
|
|
|
285
283
|
}
|
|
286
284
|
AmanoKoreaAdapter.indexAccommodation = function (_a) {
|
|
287
285
|
var accommodationId = _a.accommodationId;
|
|
288
|
-
return "AUTH|AMANO-KOREA-API|"
|
|
286
|
+
return "AUTH|AMANO-KOREA-API|".concat(accommodationId);
|
|
289
287
|
};
|
|
290
288
|
return AmanoKoreaAdapter;
|
|
291
289
|
}());
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { DeregisterParkingDiscountCommand, DeregisterParkingPassCommand, ParkingThirdParty, RegisterParkingDiscountCommand, RegisterParkingPassCommand, SearchVehiclesByNumberCriteria } from './parkingThirdParty.type';
|
|
2
|
+
interface AmanoConfig {
|
|
3
|
+
lotAreaNo: string;
|
|
4
|
+
registUserId: string;
|
|
5
|
+
password: string;
|
|
6
|
+
eqpmNo: string;
|
|
7
|
+
discCodeNo: string;
|
|
8
|
+
apiHost: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class AmanoThirdParty implements ParkingThirdParty {
|
|
11
|
+
private configuration;
|
|
12
|
+
constructor(configuration: AmanoConfig);
|
|
13
|
+
searchVehiclesByNumber(criteria: SearchVehiclesByNumberCriteria): Promise<any[]>;
|
|
14
|
+
registerParkingDiscount(command: RegisterParkingDiscountCommand): Promise<boolean>;
|
|
15
|
+
deregisterParkingDiscount(command: DeregisterParkingDiscountCommand): Promise<boolean>;
|
|
16
|
+
registerParkingPass(command: RegisterParkingPassCommand): Promise<boolean>;
|
|
17
|
+
deregisterParkingPass(command: DeregisterParkingPassCommand): Promise<boolean>;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AmanoThirdParty = void 0;
|
|
4
|
+
var AmanoThirdParty = /** @class */ (function () {
|
|
5
|
+
function AmanoThirdParty(configuration) {
|
|
6
|
+
this.configuration = configuration;
|
|
7
|
+
}
|
|
8
|
+
AmanoThirdParty.prototype.searchVehiclesByNumber = function (criteria) {
|
|
9
|
+
throw new Error('Method not implemented in Amano yet.');
|
|
10
|
+
};
|
|
11
|
+
AmanoThirdParty.prototype.registerParkingDiscount = function (command) {
|
|
12
|
+
throw new Error('Method not implemented in Amano yet.');
|
|
13
|
+
};
|
|
14
|
+
AmanoThirdParty.prototype.deregisterParkingDiscount = function (command) {
|
|
15
|
+
throw new Error('Method not implemented in Amano yet.');
|
|
16
|
+
};
|
|
17
|
+
AmanoThirdParty.prototype.registerParkingPass = function (command) {
|
|
18
|
+
throw new Error('Method not implemented in Amano yet.');
|
|
19
|
+
};
|
|
20
|
+
AmanoThirdParty.prototype.deregisterParkingPass = function (command) {
|
|
21
|
+
throw new Error('Method not implemented in Amano yet.');
|
|
22
|
+
};
|
|
23
|
+
return AmanoThirdParty;
|
|
24
|
+
}());
|
|
25
|
+
exports.AmanoThirdParty = AmanoThirdParty;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { DeregisterParkingDiscountCommand, DeregisterParkingPassCommand, ParkingThirdParty, RegisterParkingDiscountCommand, RegisterParkingPassCommand, SearchVehiclesByNumberCriteria, SearchVehiclesByNumberResult } from './parkingThirdParty.type';
|
|
2
|
+
interface NiceParkingConfig {
|
|
3
|
+
dbHost: string;
|
|
4
|
+
dbPort: string;
|
|
5
|
+
dbUserName: string;
|
|
6
|
+
dbPassword: string;
|
|
7
|
+
groupCode: string;
|
|
8
|
+
placeCode: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class NiceParkThirdParty implements ParkingThirdParty {
|
|
11
|
+
private configuration;
|
|
12
|
+
private sequelize;
|
|
13
|
+
constructor(configuration: NiceParkingConfig);
|
|
14
|
+
searchVehiclesByNumber(criteria: SearchVehiclesByNumberCriteria): Promise<SearchVehiclesByNumberResult[]>;
|
|
15
|
+
registerParkingDiscount(command: RegisterParkingDiscountCommand): Promise<boolean>;
|
|
16
|
+
deregisterParkingDiscount(command: DeregisterParkingDiscountCommand): Promise<boolean>;
|
|
17
|
+
registerParkingPass(command: RegisterParkingPassCommand): Promise<boolean>;
|
|
18
|
+
deregisterParkingPass(command: DeregisterParkingPassCommand): Promise<boolean>;
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,150 @@
|
|
|
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
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.NiceParkThirdParty = void 0;
|
|
43
|
+
var sequelize_1 = require("sequelize");
|
|
44
|
+
var tedious_1 = __importDefault(require("tedious"));
|
|
45
|
+
var moment_1 = __importDefault(require("moment"));
|
|
46
|
+
var NiceParkDbName = 'NPMU';
|
|
47
|
+
var NiceParkThirdParty = /** @class */ (function () {
|
|
48
|
+
function NiceParkThirdParty(configuration) {
|
|
49
|
+
this.configuration = configuration;
|
|
50
|
+
this.configuration.dbPort = '46000';
|
|
51
|
+
this.sequelize = new sequelize_1.Sequelize(NiceParkDbName, configuration.dbUserName, configuration.dbPassword, {
|
|
52
|
+
dialect: 'mssql',
|
|
53
|
+
host: configuration.dbHost,
|
|
54
|
+
port: Number(configuration.dbPort),
|
|
55
|
+
dialectOptions: {
|
|
56
|
+
options: {
|
|
57
|
+
encrypt: false,
|
|
58
|
+
cryptoCredentialsDetails: {
|
|
59
|
+
minVersion: 'TLSv1.2', // or 'TLSv1.3'
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
dialectModule: tedious_1.default,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
NiceParkThirdParty.prototype.searchVehiclesByNumber = function (criteria) {
|
|
67
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
68
|
+
var vehicleNumber, result, refinedResult, err_1;
|
|
69
|
+
return __generator(this, function (_a) {
|
|
70
|
+
switch (_a.label) {
|
|
71
|
+
case 0:
|
|
72
|
+
vehicleNumber = criteria.vehicleNumber;
|
|
73
|
+
_a.label = 1;
|
|
74
|
+
case 1:
|
|
75
|
+
_a.trys.push([1, 3, , 4]);
|
|
76
|
+
return [4 /*yield*/, this.sequelize.query("exec sp_External_Link_Search_CarNo4 '".concat(vehicleNumber, "'"))];
|
|
77
|
+
case 2:
|
|
78
|
+
result = _a.sent();
|
|
79
|
+
refinedResult = result[0].map(function (item) { return ({
|
|
80
|
+
vehicleNumber: item.carNo.replace(' ', ''),
|
|
81
|
+
enteredAt: new Date(item.inCarDtm),
|
|
82
|
+
}); });
|
|
83
|
+
console.log('NiceParkThirdParty#searchVehiclesByNumber result: ', refinedResult);
|
|
84
|
+
return [2 /*return*/, refinedResult];
|
|
85
|
+
case 3:
|
|
86
|
+
err_1 = _a.sent();
|
|
87
|
+
return [2 /*return*/, []];
|
|
88
|
+
case 4: return [2 /*return*/];
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
NiceParkThirdParty.prototype.registerParkingDiscount = function (command) {
|
|
94
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
95
|
+
var vehicleNumber, from, minutes, result, err_2;
|
|
96
|
+
return __generator(this, function (_a) {
|
|
97
|
+
switch (_a.label) {
|
|
98
|
+
case 0:
|
|
99
|
+
vehicleNumber = command.vehicleNumber, from = command.from, minutes = command.minutes;
|
|
100
|
+
_a.label = 1;
|
|
101
|
+
case 1:
|
|
102
|
+
_a.trys.push([1, 3, , 4]);
|
|
103
|
+
return [4 /*yield*/, this.sequelize.query("exec sp_External_Link_Discount '".concat(vehicleNumber, "', '1', '").concat(minutes, "', '").concat(this.configuration.placeCode || '000001', ";"))];
|
|
104
|
+
case 2:
|
|
105
|
+
result = _a.sent();
|
|
106
|
+
console.log('NiceParkThirdParty#registerParkingDiscount result: ', result);
|
|
107
|
+
return [2 /*return*/, result[0].result === '1'];
|
|
108
|
+
case 3:
|
|
109
|
+
err_2 = _a.sent();
|
|
110
|
+
return [2 /*return*/, false];
|
|
111
|
+
case 4: return [2 /*return*/];
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
};
|
|
116
|
+
NiceParkThirdParty.prototype.deregisterParkingDiscount = function (command) {
|
|
117
|
+
throw new Error('Method not implemented in NicePark yet.');
|
|
118
|
+
};
|
|
119
|
+
NiceParkThirdParty.prototype.registerParkingPass = function (command) {
|
|
120
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
121
|
+
var from, to, vehicleNumber, fromDateString, toDateString, result, err_3;
|
|
122
|
+
return __generator(this, function (_a) {
|
|
123
|
+
switch (_a.label) {
|
|
124
|
+
case 0:
|
|
125
|
+
from = command.from, to = command.to, vehicleNumber = command.vehicleNumber;
|
|
126
|
+
fromDateString = (0, moment_1.default)(from).format('YYYYMMDD');
|
|
127
|
+
toDateString = (0, moment_1.default)(to).format('YYYYMMDD');
|
|
128
|
+
_a.label = 1;
|
|
129
|
+
case 1:
|
|
130
|
+
_a.trys.push([1, 3, , 4]);
|
|
131
|
+
return [4 /*yield*/, this.sequelize.query("exec sp_External_Link_RegRegular_CODEIN '".concat(vehicleNumber, "', '").concat(fromDateString, "', '").concat(toDateString, "', '', '', '', '', '', '0', '").concat(this.configuration.groupCode, "';"))];
|
|
132
|
+
case 2:
|
|
133
|
+
result = _a.sent();
|
|
134
|
+
console.log('NiceParkThirdParty#registerParkingDiscount result: ', result);
|
|
135
|
+
console.log("Car#".concat(vehicleNumber, " has been registered from ").concat(fromDateString, ", to ").concat(toDateString, " with group code ").concat(this.configuration.groupCode));
|
|
136
|
+
return [2 /*return*/, result[0].result === '1'];
|
|
137
|
+
case 3:
|
|
138
|
+
err_3 = _a.sent();
|
|
139
|
+
return [2 /*return*/, false];
|
|
140
|
+
case 4: return [2 /*return*/];
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
};
|
|
145
|
+
NiceParkThirdParty.prototype.deregisterParkingPass = function (command) {
|
|
146
|
+
throw new Error('Method not implemented in NicePark yet.');
|
|
147
|
+
};
|
|
148
|
+
return NiceParkThirdParty;
|
|
149
|
+
}());
|
|
150
|
+
exports.NiceParkThirdParty = NiceParkThirdParty;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export interface SearchVehiclesByNumberCriteria {
|
|
2
|
+
accommodationId: string;
|
|
3
|
+
vehicleNumber: string;
|
|
4
|
+
targetDate?: Date;
|
|
5
|
+
}
|
|
6
|
+
export interface RegisterParkingDiscountCommand {
|
|
7
|
+
accommodationId: string;
|
|
8
|
+
vehicleNumber: string;
|
|
9
|
+
from?: Date;
|
|
10
|
+
minutes: number;
|
|
11
|
+
}
|
|
12
|
+
export interface DeregisterParkingDiscountCommand {
|
|
13
|
+
accommodationId: string;
|
|
14
|
+
vehicleNumber: string;
|
|
15
|
+
}
|
|
16
|
+
export interface RegisterParkingPassCommand {
|
|
17
|
+
accommodationId: string;
|
|
18
|
+
vehicleNumber: string;
|
|
19
|
+
from: Date;
|
|
20
|
+
to: Date;
|
|
21
|
+
}
|
|
22
|
+
export interface DeregisterParkingPassCommand {
|
|
23
|
+
accommodationId: string;
|
|
24
|
+
vehicleNumber: string;
|
|
25
|
+
}
|
|
26
|
+
export interface SearchVehiclesByNumberResult {
|
|
27
|
+
vehicleNumber: string;
|
|
28
|
+
enteredAt?: Date;
|
|
29
|
+
}
|
|
30
|
+
export declare abstract class ParkingThirdParty {
|
|
31
|
+
abstract searchVehiclesByNumber(criteria: SearchVehiclesByNumberCriteria): Promise<SearchVehiclesByNumberResult[]>;
|
|
32
|
+
abstract registerParkingDiscount(command: RegisterParkingDiscountCommand): Promise<boolean>;
|
|
33
|
+
abstract deregisterParkingDiscount(command: DeregisterParkingDiscountCommand): Promise<boolean>;
|
|
34
|
+
abstract registerParkingPass(command: RegisterParkingPassCommand): Promise<boolean>;
|
|
35
|
+
abstract deregisterParkingPass(command: DeregisterParkingPassCommand): Promise<boolean>;
|
|
36
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ParkingThirdParty = void 0;
|
|
4
|
+
var ParkingThirdParty = /** @class */ (function () {
|
|
5
|
+
function ParkingThirdParty() {
|
|
6
|
+
}
|
|
7
|
+
return ParkingThirdParty;
|
|
8
|
+
}());
|
|
9
|
+
exports.ParkingThirdParty = ParkingThirdParty;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DeregisterParkingDiscountCommand, DeregisterParkingPassCommand, ParkingThirdParty, RegisterParkingDiscountCommand, RegisterParkingPassCommand, SearchVehiclesByNumberCriteria } from './parkingThirdParty.type';
|
|
2
|
+
import { BaseParkingThirdPartyCaller } from './parkingThridPartyCaller.type';
|
|
3
|
+
export default class ParkingThirdPartyCaller implements BaseParkingThirdPartyCaller {
|
|
4
|
+
private parkingThirdParty;
|
|
5
|
+
constructor();
|
|
6
|
+
use(parkingThirdParty: ParkingThirdParty): void;
|
|
7
|
+
searchVehiclesByNumber(criteria: SearchVehiclesByNumberCriteria): Promise<any[]>;
|
|
8
|
+
registerParkingDiscount(command: RegisterParkingDiscountCommand): Promise<boolean>;
|
|
9
|
+
deregisterParkingDiscount(command: DeregisterParkingDiscountCommand): Promise<boolean>;
|
|
10
|
+
registerParkingPass(command: RegisterParkingPassCommand): Promise<boolean>;
|
|
11
|
+
deregisterParkingPass(command: DeregisterParkingPassCommand): Promise<boolean>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
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
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
var ParkingThirdPartyCaller = /** @class */ (function () {
|
|
40
|
+
// eslint-disable-next-line no-useless-constructor, @typescript-eslint/no-empty-function
|
|
41
|
+
function ParkingThirdPartyCaller() {
|
|
42
|
+
}
|
|
43
|
+
ParkingThirdPartyCaller.prototype.use = function (parkingThirdParty) {
|
|
44
|
+
this.parkingThirdParty = parkingThirdParty;
|
|
45
|
+
};
|
|
46
|
+
ParkingThirdPartyCaller.prototype.searchVehiclesByNumber = function (criteria) {
|
|
47
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
48
|
+
var searchResult, err_1;
|
|
49
|
+
return __generator(this, function (_a) {
|
|
50
|
+
switch (_a.label) {
|
|
51
|
+
case 0:
|
|
52
|
+
_a.trys.push([0, 2, , 3]);
|
|
53
|
+
return [4 /*yield*/, this.parkingThirdParty.searchVehiclesByNumber(criteria)];
|
|
54
|
+
case 1:
|
|
55
|
+
searchResult = _a.sent();
|
|
56
|
+
return [2 /*return*/, searchResult];
|
|
57
|
+
case 2:
|
|
58
|
+
err_1 = _a.sent();
|
|
59
|
+
console.error("searchVehiclesByNumber failed: ".concat(err_1));
|
|
60
|
+
return [2 /*return*/, []];
|
|
61
|
+
case 3: return [2 /*return*/];
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
ParkingThirdPartyCaller.prototype.registerParkingDiscount = function (command) {
|
|
67
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
68
|
+
var err_2;
|
|
69
|
+
return __generator(this, function (_a) {
|
|
70
|
+
switch (_a.label) {
|
|
71
|
+
case 0:
|
|
72
|
+
_a.trys.push([0, 2, , 3]);
|
|
73
|
+
return [4 /*yield*/, this.parkingThirdParty.registerParkingDiscount(command)];
|
|
74
|
+
case 1:
|
|
75
|
+
_a.sent();
|
|
76
|
+
return [2 /*return*/, true];
|
|
77
|
+
case 2:
|
|
78
|
+
err_2 = _a.sent();
|
|
79
|
+
console.error("registerParkingDiscount failed: ".concat(err_2));
|
|
80
|
+
return [2 /*return*/, false];
|
|
81
|
+
case 3: return [2 /*return*/];
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
ParkingThirdPartyCaller.prototype.deregisterParkingDiscount = function (command) {
|
|
87
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
88
|
+
var err_3;
|
|
89
|
+
return __generator(this, function (_a) {
|
|
90
|
+
switch (_a.label) {
|
|
91
|
+
case 0:
|
|
92
|
+
_a.trys.push([0, 2, , 3]);
|
|
93
|
+
return [4 /*yield*/, this.parkingThirdParty.deregisterParkingDiscount(command)];
|
|
94
|
+
case 1:
|
|
95
|
+
_a.sent();
|
|
96
|
+
return [2 /*return*/, true];
|
|
97
|
+
case 2:
|
|
98
|
+
err_3 = _a.sent();
|
|
99
|
+
console.error("deregisterParkingDiscount failed: ".concat(err_3));
|
|
100
|
+
return [2 /*return*/, false];
|
|
101
|
+
case 3: return [2 /*return*/];
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
ParkingThirdPartyCaller.prototype.registerParkingPass = function (command) {
|
|
107
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
108
|
+
var err_4;
|
|
109
|
+
return __generator(this, function (_a) {
|
|
110
|
+
switch (_a.label) {
|
|
111
|
+
case 0:
|
|
112
|
+
_a.trys.push([0, 2, , 3]);
|
|
113
|
+
return [4 /*yield*/, this.parkingThirdParty.registerParkingPass(command)];
|
|
114
|
+
case 1:
|
|
115
|
+
_a.sent();
|
|
116
|
+
return [2 /*return*/, true];
|
|
117
|
+
case 2:
|
|
118
|
+
err_4 = _a.sent();
|
|
119
|
+
console.error("registerParkingPass failed: ".concat(err_4));
|
|
120
|
+
return [2 /*return*/, false];
|
|
121
|
+
case 3: return [2 /*return*/];
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
};
|
|
126
|
+
ParkingThirdPartyCaller.prototype.deregisterParkingPass = function (command) {
|
|
127
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
128
|
+
var err_5;
|
|
129
|
+
return __generator(this, function (_a) {
|
|
130
|
+
switch (_a.label) {
|
|
131
|
+
case 0:
|
|
132
|
+
_a.trys.push([0, 2, , 3]);
|
|
133
|
+
return [4 /*yield*/, this.parkingThirdParty.deregisterParkingPass(command)];
|
|
134
|
+
case 1:
|
|
135
|
+
_a.sent();
|
|
136
|
+
return [2 /*return*/, true];
|
|
137
|
+
case 2:
|
|
138
|
+
err_5 = _a.sent();
|
|
139
|
+
console.error("deregisterParkingPass failed: ".concat(err_5));
|
|
140
|
+
return [2 /*return*/, false];
|
|
141
|
+
case 3: return [2 /*return*/];
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
};
|
|
146
|
+
return ParkingThirdPartyCaller;
|
|
147
|
+
}());
|
|
148
|
+
exports.default = ParkingThirdPartyCaller;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// interface ParkingThirdParty {
|
|
3
|
+
// searchVehiclesByNumber: () => any;
|
|
4
|
+
// parkingThridPartyCaller
|
|
5
|
+
// }
|
|
6
|
+
var __extends = (this && this.__extends) || (function () {
|
|
7
|
+
var extendStatics = function (d, b) {
|
|
8
|
+
extendStatics = Object.setPrototypeOf ||
|
|
9
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
10
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
11
|
+
return extendStatics(d, b);
|
|
12
|
+
};
|
|
13
|
+
return function (d, b) {
|
|
14
|
+
if (typeof b !== "function" && b !== null)
|
|
15
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
16
|
+
extendStatics(d, b);
|
|
17
|
+
function __() { this.constructor = d; }
|
|
18
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
19
|
+
};
|
|
20
|
+
})();
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.BaseParkingThirdPartyCaller = void 0;
|
|
23
|
+
var parkingThirdParty_type_1 = require("./parkingThirdParty.type");
|
|
24
|
+
var BaseParkingThirdPartyCaller = /** @class */ (function (_super) {
|
|
25
|
+
__extends(BaseParkingThirdPartyCaller, _super);
|
|
26
|
+
function BaseParkingThirdPartyCaller() {
|
|
27
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
28
|
+
}
|
|
29
|
+
return BaseParkingThirdPartyCaller;
|
|
30
|
+
}(parkingThirdParty_type_1.ParkingThirdParty));
|
|
31
|
+
exports.BaseParkingThirdPartyCaller = BaseParkingThirdPartyCaller;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UserServiceGrpcCaller } from '@vendit-dev/utility-modules';
|
|
2
2
|
import MutexLock from '../utils/mutex';
|
|
3
|
-
|
|
3
|
+
type VenditWingsAuthInfo = {
|
|
4
4
|
scope: string;
|
|
5
5
|
credential: {
|
|
6
6
|
companyId: string;
|
|
@@ -20,13 +20,13 @@ declare type VenditWingsAuthInfo = {
|
|
|
20
20
|
};
|
|
21
21
|
expiresAt: number;
|
|
22
22
|
};
|
|
23
|
-
|
|
23
|
+
type WingsCommonCredential = {
|
|
24
24
|
vendorId: string;
|
|
25
25
|
companyId: string;
|
|
26
26
|
apiKey: string;
|
|
27
27
|
kioskIp: string;
|
|
28
28
|
};
|
|
29
|
-
|
|
29
|
+
type WingsApiCommonResponse = {
|
|
30
30
|
resultData: any;
|
|
31
31
|
};
|
|
32
32
|
export declare class WingsApiController {
|
|
@@ -127,7 +127,7 @@ export default class WingsAdapter {
|
|
|
127
127
|
langType: string;
|
|
128
128
|
}) => Promise<{
|
|
129
129
|
walkinInfo: any;
|
|
130
|
-
roomInfo: [
|
|
130
|
+
roomInfo: any[];
|
|
131
131
|
} | null>;
|
|
132
132
|
processWalkIn: ({ accommodationId, roomTypeCode, startDate, endDate, nights, salesDate, guestName, adultCount, childCount, dailyRoomFees, carNumber, mobileNumber, }: {
|
|
133
133
|
accommodationId: string;
|