@pixelpay/sdk-core 2.0.6 → 2.1.0-beta.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/CHANGELOG.md +4 -0
- package/lib/base/Helpers.d.ts +16 -0
- package/lib/base/Helpers.js +39 -6
- package/lib/base/Helpers.js.map +1 -1
- package/lib/base/RequestBehaviour.d.ts +7 -0
- package/lib/base/RequestBehaviour.js +10 -1
- package/lib/base/RequestBehaviour.js.map +1 -1
- package/lib/base/ServiceBehaviour.d.ts +10 -0
- package/lib/base/ServiceBehaviour.js +88 -34
- package/lib/base/ServiceBehaviour.js.map +1 -1
- package/lib/browser/index.js +3 -3
- package/lib/libraries/CardinalManager.js +1 -1
- package/lib/models/Settings.d.ts +4 -0
- package/lib/models/Settings.js +8 -4
- package/lib/models/Settings.js.map +1 -1
- package/lib/requests/CardTokenization.d.ts +9 -2
- package/lib/requests/CardTokenization.js +28 -0
- package/lib/requests/CardTokenization.js.map +1 -1
- package/lib/requests/PaymentTransaction.d.ts +12 -5
- package/lib/requests/PaymentTransaction.js +25 -0
- package/lib/requests/PaymentTransaction.js.map +1 -1
- package/lib/services/Tokenization.js +1 -1
- package/lib/services/Transaction.js +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +4 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,10 @@ El formato se basa en [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
|
5
5
|
y este proyecto se adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
Tipos de cambios: `Added`, `Changed`, `Deprecated`, `Removed`, `Fixed`, `Security`.
|
|
7
7
|
|
|
8
|
+
## [v2.1.0-beta.0] - Unreleased
|
|
9
|
+
### Added
|
|
10
|
+
- Se agregó encriptación de datos de tarjeta.
|
|
11
|
+
|
|
8
12
|
## [v2.0.6] - 2023-06-09
|
|
9
13
|
### Added
|
|
10
14
|
- Se agregan campos de cuotas y puntos
|
package/lib/base/Helpers.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import nacl from 'tweetnacl';
|
|
1
2
|
declare const _default: {
|
|
2
3
|
/**
|
|
3
4
|
* Serialize object to JSON string without empties
|
|
@@ -35,6 +36,21 @@ declare const _default: {
|
|
|
35
36
|
* @return
|
|
36
37
|
*/
|
|
37
38
|
parseAmount(amount: number | null | undefined): string | null;
|
|
39
|
+
/**
|
|
40
|
+
* Generate encryption key pair
|
|
41
|
+
*
|
|
42
|
+
* @return
|
|
43
|
+
*/
|
|
44
|
+
getKeyPair(): nacl.BoxKeyPair;
|
|
45
|
+
/**
|
|
46
|
+
* Encrypt message, returns encrypted value concatenated with base64 nonce.
|
|
47
|
+
*
|
|
48
|
+
* @param message
|
|
49
|
+
* @param publicKey
|
|
50
|
+
* @param keyPair
|
|
51
|
+
* @return
|
|
52
|
+
*/
|
|
53
|
+
encrypt(message: string | null, publicKey: string | null, keyPair: nacl.BoxKeyPair): string | null;
|
|
38
54
|
/**
|
|
39
55
|
* Verify if environment is a Browser
|
|
40
56
|
*/
|
package/lib/base/Helpers.js
CHANGED
|
@@ -11,6 +11,8 @@ var __assign = (this && this.__assign) || function () {
|
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
var tweetnacl_1 = require("tweetnacl");
|
|
15
|
+
var tweetnacl_util_1 = require("tweetnacl-util");
|
|
14
16
|
var crypto_js_1 = require("crypto-js");
|
|
15
17
|
exports.default = {
|
|
16
18
|
/**
|
|
@@ -37,12 +39,12 @@ exports.default = {
|
|
|
37
39
|
*/
|
|
38
40
|
hash: function (algorithm, value) {
|
|
39
41
|
switch (algorithm) {
|
|
40
|
-
case
|
|
42
|
+
case 'MD5':
|
|
41
43
|
return (0, crypto_js_1.MD5)(value).toString();
|
|
42
|
-
case
|
|
44
|
+
case 'SHA-512':
|
|
43
45
|
return (0, crypto_js_1.SHA512)(value).toString();
|
|
44
46
|
default:
|
|
45
|
-
return
|
|
47
|
+
return '';
|
|
46
48
|
}
|
|
47
49
|
},
|
|
48
50
|
/**
|
|
@@ -81,11 +83,42 @@ exports.default = {
|
|
|
81
83
|
}
|
|
82
84
|
return null;
|
|
83
85
|
},
|
|
86
|
+
/**
|
|
87
|
+
* Generate encryption key pair
|
|
88
|
+
*
|
|
89
|
+
* @return
|
|
90
|
+
*/
|
|
91
|
+
getKeyPair: function () {
|
|
92
|
+
return tweetnacl_1.default.box.keyPair();
|
|
93
|
+
},
|
|
94
|
+
/**
|
|
95
|
+
* Encrypt message, returns encrypted value concatenated with base64 nonce.
|
|
96
|
+
*
|
|
97
|
+
* @param message
|
|
98
|
+
* @param publicKey
|
|
99
|
+
* @param keyPair
|
|
100
|
+
* @return
|
|
101
|
+
*/
|
|
102
|
+
encrypt: function (message, publicKey, keyPair) {
|
|
103
|
+
if (!message) {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
if (!publicKey) {
|
|
107
|
+
return message;
|
|
108
|
+
}
|
|
109
|
+
var nonce = tweetnacl_1.default.randomBytes(24);
|
|
110
|
+
var merchantPublicKey = tweetnacl_util_1.default.decodeBase64(publicKey);
|
|
111
|
+
var sharedKey = tweetnacl_1.default.box.before(merchantPublicKey, keyPair.secretKey);
|
|
112
|
+
var box = tweetnacl_1.default.box.after(tweetnacl_util_1.default.decodeUTF8(message), nonce, sharedKey);
|
|
113
|
+
var boxb64 = tweetnacl_util_1.default.encodeBase64(box);
|
|
114
|
+
var nonceb64 = tweetnacl_util_1.default.encodeBase64(nonce);
|
|
115
|
+
return "".concat(boxb64, "|").concat(nonceb64);
|
|
116
|
+
},
|
|
84
117
|
/**
|
|
85
118
|
* Verify if environment is a Browser
|
|
86
119
|
*/
|
|
87
120
|
checkIsBrowser: function () {
|
|
88
|
-
return typeof window !==
|
|
121
|
+
return typeof window !== 'undefined' && typeof window.document !== 'undefined';
|
|
89
122
|
},
|
|
90
123
|
/**
|
|
91
124
|
* Append website script and load
|
|
@@ -95,11 +128,11 @@ exports.default = {
|
|
|
95
128
|
addScriptToWebsite: function (src) {
|
|
96
129
|
return new Promise(function (resolve, reject) {
|
|
97
130
|
var id = (0, crypto_js_1.MD5)(src).toString();
|
|
98
|
-
var script = document.createElement(
|
|
131
|
+
var script = document.createElement('script');
|
|
99
132
|
if (!document.querySelector("script[id=\"".concat(id, "\"]"))) {
|
|
100
133
|
script.id = id;
|
|
101
134
|
script.src = src;
|
|
102
|
-
script.type =
|
|
135
|
+
script.type = 'text/javascript';
|
|
103
136
|
script.onload = resolve;
|
|
104
137
|
script.onerror = reject;
|
|
105
138
|
document.body.appendChild(script);
|
package/lib/base/Helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Helpers.js","sourceRoot":"","sources":["../../src/base/Helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Helpers.js","sourceRoot":"","sources":["../../src/base/Helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,13 @@ export default class RequestBehaviour {
|
|
|
19
19
|
* Initialize request
|
|
20
20
|
*/
|
|
21
21
|
constructor();
|
|
22
|
+
/**
|
|
23
|
+
* Encrypt fields with sensitive data, must be overriden by inherited classes.
|
|
24
|
+
*
|
|
25
|
+
* @param publicKey
|
|
26
|
+
* @returns
|
|
27
|
+
*/
|
|
28
|
+
withEncryption(publicKey: string): string | null;
|
|
22
29
|
/**
|
|
23
30
|
* Serialize object to JSON string
|
|
24
31
|
*
|
|
@@ -24,12 +24,21 @@ var RequestBehaviour = /** @class */ (function () {
|
|
|
24
24
|
*/
|
|
25
25
|
this.sdk_version = null;
|
|
26
26
|
this.lang = Intl.DateTimeFormat().resolvedOptions().locale;
|
|
27
|
-
this.from =
|
|
27
|
+
this.from = 'sdk-javascript';
|
|
28
28
|
this.sdk_version = version_1.default;
|
|
29
29
|
if (this.lang != 'es' && this.lang != 'en') {
|
|
30
30
|
this.lang = 'es';
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Encrypt fields with sensitive data, must be overriden by inherited classes.
|
|
35
|
+
*
|
|
36
|
+
* @param publicKey
|
|
37
|
+
* @returns
|
|
38
|
+
*/
|
|
39
|
+
RequestBehaviour.prototype.withEncryption = function (publicKey) {
|
|
40
|
+
return null;
|
|
41
|
+
};
|
|
33
42
|
/**
|
|
34
43
|
* Serialize object to JSON string
|
|
35
44
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestBehaviour.js","sourceRoot":"","sources":["../../src/base/RequestBehaviour.ts"],"names":[],"mappings":";;AAAA,qCAAgC;AAChC,sCAAiC;AAEjC;IAqBC;;OAEG;IACH;QAvBA;;WAEG;QACH,QAAG,GAAW,IAAI,CAAC;QAEnB;;WAEG;QACH,SAAI,GAAW,IAAI,CAAC;QAEpB;;WAEG;QACH,SAAI,GAAW,IAAI,CAAC;QAEpB;;WAEG;QACH,gBAAW,GAAW,IAAI,CAAC;QAM1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,iBAAO,CAAC;QAE3B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;YAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;IACF,CAAC;IAED;;;;OAIG;IACH,iCAAM,GAAN;QACC,OAAO,iBAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACF,uBAAC;AAAD,CAAC,
|
|
1
|
+
{"version":3,"file":"RequestBehaviour.js","sourceRoot":"","sources":["../../src/base/RequestBehaviour.ts"],"names":[],"mappings":";;AAAA,qCAAgC;AAChC,sCAAiC;AAEjC;IAqBC;;OAEG;IACH;QAvBA;;WAEG;QACH,QAAG,GAAW,IAAI,CAAC;QAEnB;;WAEG;QACH,SAAI,GAAW,IAAI,CAAC;QAEpB;;WAEG;QACH,SAAI,GAAW,IAAI,CAAC;QAEpB;;WAEG;QACH,gBAAW,GAAW,IAAI,CAAC;QAM1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,iBAAO,CAAC;QAE3B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;YAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;IACF,CAAC;IAED;;;;;OAKG;IACH,yCAAc,GAAd,UAAe,SAAiB;QAC/B,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,iCAAM,GAAN;QACC,OAAO,iBAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACF,uBAAC;AAAD,CAAC,AApDD,IAoDC"}
|
|
@@ -6,6 +6,10 @@ export default class ServiceBehaviour {
|
|
|
6
6
|
* Settings service model
|
|
7
7
|
*/
|
|
8
8
|
settings: Settings;
|
|
9
|
+
/**
|
|
10
|
+
* Public key from pair generated by current instance.
|
|
11
|
+
*/
|
|
12
|
+
sdk_public_key: string;
|
|
9
13
|
/**
|
|
10
14
|
* Initialize service
|
|
11
15
|
*/
|
|
@@ -33,6 +37,12 @@ export default class ServiceBehaviour {
|
|
|
33
37
|
* @returns
|
|
34
38
|
*/
|
|
35
39
|
private exceptionResponse;
|
|
40
|
+
/**
|
|
41
|
+
* Verify and set request encryption values
|
|
42
|
+
*
|
|
43
|
+
* @param request
|
|
44
|
+
*/
|
|
45
|
+
private validateEncryption;
|
|
36
46
|
/**
|
|
37
47
|
* Get API route
|
|
38
48
|
*
|
|
@@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
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
19
|
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
20
|
switch (op[0]) {
|
|
@@ -38,6 +38,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
var axios_1 = require("axios");
|
|
40
40
|
var InvalidCredentialsException_1 = require("../exceptions/InvalidCredentialsException");
|
|
41
|
+
var RequestBehaviour_1 = require("./RequestBehaviour");
|
|
41
42
|
var Response_1 = require("./Response");
|
|
42
43
|
var ErrorResponse_1 = require("../responses/ErrorResponse");
|
|
43
44
|
var FailureResponse_1 = require("../responses/FailureResponse");
|
|
@@ -53,6 +54,7 @@ var TimeoutResponse_1 = require("../responses/TimeoutResponse");
|
|
|
53
54
|
axios_1.default.defaults.validateStatus = function () {
|
|
54
55
|
return true;
|
|
55
56
|
};
|
|
57
|
+
var PUBLIC_KEY_PATH = 'api/v2/merchant/public_key';
|
|
56
58
|
var ServiceBehaviour = /** @class */ (function () {
|
|
57
59
|
/**
|
|
58
60
|
* Initialize service
|
|
@@ -69,7 +71,7 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
69
71
|
*/
|
|
70
72
|
ServiceBehaviour.prototype.buildRequest = function (url, transaction) {
|
|
71
73
|
if (!this.settings.auth_key || !this.settings.auth_hash) {
|
|
72
|
-
throw new InvalidCredentialsException_1.default(
|
|
74
|
+
throw new InvalidCredentialsException_1.default('The merchant credentials are not definied (key/hash).');
|
|
73
75
|
}
|
|
74
76
|
if (this.settings.environment != null) {
|
|
75
77
|
transaction.env = this.settings.environment;
|
|
@@ -84,7 +86,10 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
84
86
|
'x-auth-hash': this.settings.auth_hash,
|
|
85
87
|
};
|
|
86
88
|
if (this.settings.auth_user) {
|
|
87
|
-
headers[
|
|
89
|
+
headers['x-auth-user'] = this.settings.auth_user;
|
|
90
|
+
}
|
|
91
|
+
if (this.sdk_public_key) {
|
|
92
|
+
headers['x-auth-secure'] = this.sdk_public_key;
|
|
88
93
|
}
|
|
89
94
|
return axios_1.default.create({
|
|
90
95
|
baseURL: this.settings.endpoint,
|
|
@@ -163,6 +168,41 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
163
168
|
response.message = e.message;
|
|
164
169
|
return response;
|
|
165
170
|
};
|
|
171
|
+
/**
|
|
172
|
+
* Verify and set request encryption values
|
|
173
|
+
*
|
|
174
|
+
* @param request
|
|
175
|
+
*/
|
|
176
|
+
ServiceBehaviour.prototype.validateEncryption = function (request) {
|
|
177
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
178
|
+
var response, e_1;
|
|
179
|
+
return __generator(this, function (_a) {
|
|
180
|
+
switch (_a.label) {
|
|
181
|
+
case 0:
|
|
182
|
+
if (!!this.settings.public_key) return [3 /*break*/, 4];
|
|
183
|
+
_a.label = 1;
|
|
184
|
+
case 1:
|
|
185
|
+
_a.trys.push([1, 3, , 4]);
|
|
186
|
+
return [4 /*yield*/, this.get(PUBLIC_KEY_PATH, new RequestBehaviour_1.default())];
|
|
187
|
+
case 2:
|
|
188
|
+
response = _a.sent();
|
|
189
|
+
if (response.success) {
|
|
190
|
+
this.settings.public_key = response.getData('public_key');
|
|
191
|
+
}
|
|
192
|
+
return [3 /*break*/, 4];
|
|
193
|
+
case 3:
|
|
194
|
+
e_1 = _a.sent();
|
|
195
|
+
console.error(e_1);
|
|
196
|
+
return [3 /*break*/, 4];
|
|
197
|
+
case 4:
|
|
198
|
+
if (this.settings.public_key) {
|
|
199
|
+
this.sdk_public_key = request.withEncryption(this.settings.public_key);
|
|
200
|
+
}
|
|
201
|
+
return [2 /*return*/];
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
};
|
|
166
206
|
/**
|
|
167
207
|
* Get API route
|
|
168
208
|
*
|
|
@@ -170,7 +210,7 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
170
210
|
* @return
|
|
171
211
|
*/
|
|
172
212
|
ServiceBehaviour.prototype.getRoute = function (route) {
|
|
173
|
-
return this.settings.endpoint +
|
|
213
|
+
return this.settings.endpoint + '/' + route;
|
|
174
214
|
};
|
|
175
215
|
/**
|
|
176
216
|
* API POST request
|
|
@@ -182,19 +222,22 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
182
222
|
*/
|
|
183
223
|
ServiceBehaviour.prototype.post = function (url, body) {
|
|
184
224
|
return __awaiter(this, void 0, void 0, function () {
|
|
185
|
-
var response,
|
|
225
|
+
var response, e_2;
|
|
186
226
|
return __generator(this, function (_a) {
|
|
187
227
|
switch (_a.label) {
|
|
188
228
|
case 0:
|
|
189
|
-
_a.trys.push([0,
|
|
190
|
-
return [4 /*yield*/, this.
|
|
229
|
+
_a.trys.push([0, 3, , 4]);
|
|
230
|
+
return [4 /*yield*/, this.validateEncryption(body)];
|
|
191
231
|
case 1:
|
|
232
|
+
_a.sent();
|
|
233
|
+
return [4 /*yield*/, this.buildRequest(url, body).post(url, JSON.parse(body.toJson()))];
|
|
234
|
+
case 2:
|
|
192
235
|
response = _a.sent();
|
|
193
236
|
return [2 /*return*/, this.parseResponse(response.data, response.status)];
|
|
194
|
-
case
|
|
195
|
-
|
|
196
|
-
return [2 /*return*/, this.exceptionResponse(
|
|
197
|
-
case
|
|
237
|
+
case 3:
|
|
238
|
+
e_2 = _a.sent();
|
|
239
|
+
return [2 /*return*/, this.exceptionResponse(e_2)];
|
|
240
|
+
case 4: return [2 /*return*/];
|
|
198
241
|
}
|
|
199
242
|
});
|
|
200
243
|
});
|
|
@@ -209,19 +252,22 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
209
252
|
*/
|
|
210
253
|
ServiceBehaviour.prototype.put = function (url, body) {
|
|
211
254
|
return __awaiter(this, void 0, void 0, function () {
|
|
212
|
-
var response,
|
|
255
|
+
var response, e_3;
|
|
213
256
|
return __generator(this, function (_a) {
|
|
214
257
|
switch (_a.label) {
|
|
215
258
|
case 0:
|
|
216
|
-
_a.trys.push([0,
|
|
217
|
-
return [4 /*yield*/, this.
|
|
259
|
+
_a.trys.push([0, 3, , 4]);
|
|
260
|
+
return [4 /*yield*/, this.validateEncryption(body)];
|
|
218
261
|
case 1:
|
|
262
|
+
_a.sent();
|
|
263
|
+
return [4 /*yield*/, this.buildRequest(url, body).put(url, JSON.parse(body.toJson()))];
|
|
264
|
+
case 2:
|
|
219
265
|
response = _a.sent();
|
|
220
266
|
return [2 /*return*/, this.parseResponse(response.data, response.status)];
|
|
221
|
-
case
|
|
222
|
-
|
|
223
|
-
return [2 /*return*/, this.exceptionResponse(
|
|
224
|
-
case
|
|
267
|
+
case 3:
|
|
268
|
+
e_3 = _a.sent();
|
|
269
|
+
return [2 /*return*/, this.exceptionResponse(e_3)];
|
|
270
|
+
case 4: return [2 /*return*/];
|
|
225
271
|
}
|
|
226
272
|
});
|
|
227
273
|
});
|
|
@@ -236,21 +282,24 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
236
282
|
*/
|
|
237
283
|
ServiceBehaviour.prototype.delete = function (url, body) {
|
|
238
284
|
return __awaiter(this, void 0, void 0, function () {
|
|
239
|
-
var response,
|
|
285
|
+
var response, e_4;
|
|
240
286
|
return __generator(this, function (_a) {
|
|
241
287
|
switch (_a.label) {
|
|
242
288
|
case 0:
|
|
243
|
-
_a.trys.push([0,
|
|
289
|
+
_a.trys.push([0, 3, , 4]);
|
|
290
|
+
return [4 /*yield*/, this.validateEncryption(body)];
|
|
291
|
+
case 1:
|
|
292
|
+
_a.sent();
|
|
244
293
|
return [4 /*yield*/, this.buildRequest(url, body).delete(url, {
|
|
245
294
|
params: JSON.parse(body.toJson()),
|
|
246
295
|
})];
|
|
247
|
-
case
|
|
296
|
+
case 2:
|
|
248
297
|
response = _a.sent();
|
|
249
298
|
return [2 /*return*/, this.parseResponse(response.data, response.status)];
|
|
250
|
-
case
|
|
251
|
-
|
|
252
|
-
return [2 /*return*/, this.exceptionResponse(
|
|
253
|
-
case
|
|
299
|
+
case 3:
|
|
300
|
+
e_4 = _a.sent();
|
|
301
|
+
return [2 /*return*/, this.exceptionResponse(e_4)];
|
|
302
|
+
case 4: return [2 /*return*/];
|
|
254
303
|
}
|
|
255
304
|
});
|
|
256
305
|
});
|
|
@@ -265,21 +314,26 @@ var ServiceBehaviour = /** @class */ (function () {
|
|
|
265
314
|
*/
|
|
266
315
|
ServiceBehaviour.prototype.get = function (url, body) {
|
|
267
316
|
return __awaiter(this, void 0, void 0, function () {
|
|
268
|
-
var response,
|
|
317
|
+
var response, e_5;
|
|
269
318
|
return __generator(this, function (_a) {
|
|
270
319
|
switch (_a.label) {
|
|
271
320
|
case 0:
|
|
272
|
-
_a.trys.push([0,
|
|
273
|
-
return [
|
|
274
|
-
|
|
275
|
-
})];
|
|
321
|
+
_a.trys.push([0, 4, , 5]);
|
|
322
|
+
if (!(url !== PUBLIC_KEY_PATH)) return [3 /*break*/, 2];
|
|
323
|
+
return [4 /*yield*/, this.validateEncryption(body)];
|
|
276
324
|
case 1:
|
|
325
|
+
_a.sent();
|
|
326
|
+
_a.label = 2;
|
|
327
|
+
case 2: return [4 /*yield*/, this.buildRequest(url, body).get(url, {
|
|
328
|
+
params: JSON.parse(body.toJson()),
|
|
329
|
+
})];
|
|
330
|
+
case 3:
|
|
277
331
|
response = _a.sent();
|
|
278
332
|
return [2 /*return*/, this.parseResponse(response.data, response.status)];
|
|
279
|
-
case
|
|
280
|
-
|
|
281
|
-
return [2 /*return*/, this.exceptionResponse(
|
|
282
|
-
case
|
|
333
|
+
case 4:
|
|
334
|
+
e_5 = _a.sent();
|
|
335
|
+
return [2 /*return*/, this.exceptionResponse(e_5)];
|
|
336
|
+
case 5: return [2 /*return*/];
|
|
283
337
|
}
|
|
284
338
|
});
|
|
285
339
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceBehaviour.js","sourceRoot":"","sources":["../../src/base/ServiceBehaviour.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+
|
|
1
|
+
{"version":3,"file":"ServiceBehaviour.js","sourceRoot":"","sources":["../../src/base/ServiceBehaviour.ts"],"names":[],"mappings":"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"}
|