@smartsoft001/revolut 2.189.0 → 2.191.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/README.md +15 -0
- package/package.json +2 -2
- package/src/lib/revolut.service.js +48 -10
- package/src/lib/revolut.service.js.map +1 -1
package/README.md
CHANGED
|
@@ -28,3 +28,18 @@ Methods:
|
|
|
28
28
|
<td>Refund handling (unsupported, the returned promise always rejects)</td>
|
|
29
29
|
</tr>
|
|
30
30
|
</table>
|
|
31
|
+
|
|
32
|
+
## ⚠️ Errors
|
|
33
|
+
|
|
34
|
+
A failed Revolut call is never rethrown as the raw axios error, because that error carries the
|
|
35
|
+
merchant secret key as `Authorization: Bearer`. `create` and `getStatus` log one line through the
|
|
36
|
+
NestJS `Logger` and throw a plain `Error` with no `cause`, `config` or `response`:
|
|
37
|
+
|
|
38
|
+
- `Revolut order creation failed (HTTP {status})`
|
|
39
|
+
- `Revolut status lookup failed (HTTP {status})`
|
|
40
|
+
|
|
41
|
+
The ` (HTTP {status})` suffix is present only when Revolut answered, so `401` and `5xx` stay
|
|
42
|
+
distinguishable. `refund` sends nothing and still rejects with `Revolut does not support refund`.
|
|
43
|
+
|
|
44
|
+
Migration: code that read `e.response` from these errors must read the message instead. The
|
|
45
|
+
`error` history entries written by `setError` for these failures no longer carry a `status`.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smartsoft001/revolut",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.191.0",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"typings": "./src/index.d.ts",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"@nestjs/axios": "^4.0.1",
|
|
23
23
|
"@nestjs/common": "^11.1.5",
|
|
24
24
|
"@nestjs/core": "^11.2.1",
|
|
25
|
-
"@smartsoft001/trans-domain": "2.
|
|
25
|
+
"@smartsoft001/trans-domain": "2.191.0",
|
|
26
26
|
"rxjs": "^7.8.1"
|
|
27
27
|
},
|
|
28
28
|
"types": "./src/index.d.ts"
|
|
@@ -8,6 +8,32 @@ const common_1 = require("@nestjs/common");
|
|
|
8
8
|
const core_1 = require("@nestjs/core");
|
|
9
9
|
const rxjs_1 = require("rxjs");
|
|
10
10
|
const revolut_config_1 = require("./revolut.config");
|
|
11
|
+
function httpStatusOf(e) {
|
|
12
|
+
if (typeof e === 'object' &&
|
|
13
|
+
e !== null &&
|
|
14
|
+
'response' in e &&
|
|
15
|
+
typeof e.response === 'object' &&
|
|
16
|
+
e.response !== null &&
|
|
17
|
+
'status' in e.response &&
|
|
18
|
+
typeof e.response.status === 'number') {
|
|
19
|
+
return e.response.status;
|
|
20
|
+
}
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* HTTP errors retain the request, and every Revolut request carries the
|
|
25
|
+
* long-lived merchant secret key as `Authorization: Bearer <token>`. Neither
|
|
26
|
+
* the raw error nor its message may reach a log or an upstream handler, so
|
|
27
|
+
* only the operation and the HTTP status survive.
|
|
28
|
+
*/
|
|
29
|
+
function revolutFailure(operation, e) {
|
|
30
|
+
const status = httpStatusOf(e);
|
|
31
|
+
const message = status === undefined
|
|
32
|
+
? `Revolut ${operation} failed`
|
|
33
|
+
: `Revolut ${operation} failed (HTTP ${status})`;
|
|
34
|
+
common_1.Logger.error(message, RevolutService.name);
|
|
35
|
+
return new Error(message);
|
|
36
|
+
}
|
|
11
37
|
let RevolutService = RevolutService_1 = class RevolutService {
|
|
12
38
|
httpService;
|
|
13
39
|
moduleRef;
|
|
@@ -35,10 +61,16 @@ let RevolutService = RevolutService_1 = class RevolutService {
|
|
|
35
61
|
phone: obj.contactPhone,
|
|
36
62
|
};
|
|
37
63
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
64
|
+
let response;
|
|
65
|
+
try {
|
|
66
|
+
response = await (0, rxjs_1.firstValueFrom)(this.httpService.post(this.getBaseUrl(config) + '/api/orders', data, {
|
|
67
|
+
headers: this.getHeaders(config),
|
|
68
|
+
maxRedirects: 0,
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
catch (e) {
|
|
72
|
+
throw revolutFailure('order creation', e);
|
|
73
|
+
}
|
|
42
74
|
return {
|
|
43
75
|
redirectUrl: response.data.checkout_url,
|
|
44
76
|
responseData: response.data,
|
|
@@ -52,12 +84,18 @@ let RevolutService = RevolutService_1 = class RevolutService {
|
|
|
52
84
|
if (!historyItem) {
|
|
53
85
|
throw new Error('Transaction without start status');
|
|
54
86
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
87
|
+
let response;
|
|
88
|
+
try {
|
|
89
|
+
response = await (0, rxjs_1.firstValueFrom)(this.httpService.get(this.getBaseUrl(config) +
|
|
90
|
+
'/api/orders/' +
|
|
91
|
+
historyItem.data.responseData.id, {
|
|
92
|
+
headers: this.getHeaders(config),
|
|
93
|
+
maxRedirects: 0,
|
|
94
|
+
}));
|
|
95
|
+
}
|
|
96
|
+
catch (e) {
|
|
97
|
+
throw revolutFailure('status lookup', e);
|
|
98
|
+
}
|
|
61
99
|
return {
|
|
62
100
|
data: response.data,
|
|
63
101
|
status: this.getStatusFromExternal(response.data['state']),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revolut.service.js","sourceRoot":"","sources":["../../../../../../packages/shared/revolut/src/lib/revolut.service.ts"],"names":[],"mappings":";;;;;AAAA,yCAA4C;AAC5C,2CAA8D;AAC9D,uCAAyC;AACzC,+BAAsC;AAQtC,qDAK0B;
|
|
1
|
+
{"version":3,"file":"revolut.service.js","sourceRoot":"","sources":["../../../../../../packages/shared/revolut/src/lib/revolut.service.ts"],"names":[],"mappings":"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"}
|