@mojaloop/sdk-scheme-adapter 17.0.0 → 17.0.2-snapshot.8
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/.circleci/config.yml +463 -182
- package/CHANGELOG.md +7 -0
- package/Dockerfile +12 -5
- package/audit-resolve.json +27 -68
- package/docker-compose.yml +4 -2
- package/package.json +21 -19
- package/src/index.js +0 -2
- package/src/lib/model/AccountsModel.js +4 -7
- package/src/lib/model/Async2SyncModel.js +4 -3
- package/src/lib/model/InboundTransfersModel.js +16 -14
- package/src/lib/model/OutboundBulkQuotesModel.js +4 -7
- package/src/lib/model/OutboundBulkTransfersModel.js +4 -7
- package/src/lib/model/OutboundRequestToPayModel.js +5 -10
- package/src/lib/model/OutboundRequestToPayTransferModel.js +6 -12
- package/src/lib/model/OutboundTransfersModel.js +10 -9
- package/src/lib/model/common/BackendError.js +1 -13
- package/src/lib/model/common/Enums.js +30 -0
- package/src/lib/model/common/index.js +3 -2
- package/test/config/integration.env +2 -2
- package/test/integration/lib/Outbound/parties.test.js +2 -1
- package/test/integration/lib/Outbound/quotes.test.js +3 -1
- package/test/integration/lib/Outbound/simpleTransfers.test.js +2 -1
- package/test/unit/inboundApi/handlers.test.js +3 -1
- package/test/unit/lib/model/AccountsModel.test.js +2 -1
- package/test/unit/lib/model/InboundTransfersModel.test.js +10 -6
- package/test/unit/lib/model/OutboundBulkQuotesModel.test.js +5 -3
- package/test/unit/lib/model/OutboundBulkTransfersModel.test.js +4 -3
- package/test/unit/lib/model/OutboundRequestToPayModel.test.js +3 -2
- package/test/unit/lib/model/OutboundRequestToPayTransferModel.test.js +4 -3
- package/test/unit/lib/model/OutboundTransfersModel.test.js +37 -34
- package/test/unit/lib/model/PartiesModel.test.js +2 -1
- package/test/unit/lib/model/QuotesModel.test.js +2 -1
- package/test/unit/lib/model/TransfersModel.test.js +2 -1
- package/test/unit/lib/model/data/getBulkTransfersBackendResponse.json +1 -1
- package/test/unit/lib/model/data/getBulkTransfersMojaloopResponse.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
# Changelog: [mojaloop/thirdparty-api-svc](https://github.com/mojaloop/thirdparty-api-svc)
|
|
2
|
+
### [17.0.1](https://github.com/mojaloop/sdk-scheme-adapter/compare/v17.0.0...v17.0.1) (2022-07-04)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* creating inbound server ([#329](https://github.com/mojaloop/sdk-scheme-adapter/issues/329)) ([962420f](https://github.com/mojaloop/sdk-scheme-adapter/commit/962420f6fed02722c5a9aeee6c108b6fbc9f021d))
|
|
8
|
+
|
|
2
9
|
## [17.0.0](https://github.com/mojaloop/sdk-scheme-adapter/compare/v15.0.1...v17.0.0) (2022-07-04)
|
|
3
10
|
|
|
4
11
|
|
package/Dockerfile
CHANGED
|
@@ -4,7 +4,7 @@ RUN apk add --no-cache git python3 build-base
|
|
|
4
4
|
|
|
5
5
|
EXPOSE 3000
|
|
6
6
|
|
|
7
|
-
WORKDIR /
|
|
7
|
+
WORKDIR /opt/app
|
|
8
8
|
|
|
9
9
|
# This is super-ugly, but it means we don't have to re-run npm install every time any of the source
|
|
10
10
|
# files change- only when any dependencies change- which is a superior developer experience when
|
|
@@ -12,7 +12,12 @@ WORKDIR /src
|
|
|
12
12
|
COPY ./package.json .
|
|
13
13
|
COPY ./package-lock.json .
|
|
14
14
|
RUN npm ci --only=production
|
|
15
|
+
|
|
16
|
+
COPY src /opt/app/src
|
|
17
|
+
|
|
15
18
|
FROM node:16.15.0-alpine
|
|
19
|
+
WORKDIR /opt/app
|
|
20
|
+
|
|
16
21
|
|
|
17
22
|
ARG BUILD_DATE
|
|
18
23
|
ARG VCS_URL
|
|
@@ -28,8 +33,10 @@ LABEL org.label-schema.vcs-ref=$VCS_REF
|
|
|
28
33
|
LABEL org.label-schema.url="https://mojaloop.io/"
|
|
29
34
|
LABEL org.label-schema.version=$VERSION
|
|
30
35
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
36
|
+
# Create a non-root user: ml-user
|
|
37
|
+
RUN adduser -D ml-user
|
|
38
|
+
USER ml-user
|
|
39
|
+
|
|
40
|
+
COPY --chown=ml-user --from=builder /opt/app .
|
|
34
41
|
|
|
35
|
-
CMD ["
|
|
42
|
+
CMD ["npm", "run", "start"]
|
package/audit-resolve.json
CHANGED
|
@@ -2,99 +2,58 @@
|
|
|
2
2
|
"decisions": {
|
|
3
3
|
"1075703|@mojaloop/central-services-shared>@mojaloop/event-sdk>grpc>protobufjs": {
|
|
4
4
|
"decision": "ignore",
|
|
5
|
-
"madeAt":
|
|
5
|
+
"madeAt": 1657188195403,
|
|
6
|
+
"expiresAt": 1659780190646
|
|
6
7
|
},
|
|
7
8
|
"1075704|@mojaloop/central-services-shared>@mojaloop/event-sdk>grpc>protobufjs": {
|
|
8
9
|
"decision": "ignore",
|
|
9
|
-
"madeAt":
|
|
10
|
+
"madeAt": 1657188196343,
|
|
11
|
+
"expiresAt": 1659780190646
|
|
10
12
|
},
|
|
11
|
-
"
|
|
13
|
+
"1080944|@mojaloop/central-services-shared>@mojaloop/event-sdk>grpc>protobufjs>moment": {
|
|
12
14
|
"decision": "ignore",
|
|
13
|
-
"madeAt":
|
|
15
|
+
"madeAt": 1657188197274,
|
|
16
|
+
"expiresAt": 1659780190646
|
|
14
17
|
},
|
|
15
|
-
"
|
|
16
|
-
"decision": "ignore",
|
|
17
|
-
"madeAt": 1656679958471
|
|
18
|
-
},
|
|
19
|
-
"1070030|@mojaloop/central-services-shared>@mojaloop/event-sdk>grpc>protobufjs>shins>ejs>markdown-it": {
|
|
18
|
+
"1070030|@mojaloop/central-services-shared>@mojaloop/event-sdk>grpc>protobufjs>moment>shins>markdown-it": {
|
|
20
19
|
"decision": "ignore",
|
|
21
|
-
"madeAt":
|
|
20
|
+
"madeAt": 1657188198190,
|
|
21
|
+
"expiresAt": 1659780190646
|
|
22
22
|
},
|
|
23
23
|
"1070030|widdershins>markdown-it": {
|
|
24
24
|
"decision": "ignore",
|
|
25
|
-
"madeAt":
|
|
25
|
+
"madeAt": 1657188198190,
|
|
26
|
+
"expiresAt": 1659780190646
|
|
26
27
|
},
|
|
27
|
-
"1068155|@mojaloop/central-services-shared>@mojaloop/event-sdk>grpc>protobufjs>shins>
|
|
28
|
+
"1068155|@mojaloop/central-services-shared>@mojaloop/event-sdk>grpc>protobufjs>moment>shins>markdown-it>sanitize-html": {
|
|
28
29
|
"decision": "ignore",
|
|
29
|
-
"madeAt":
|
|
30
|
+
"madeAt": 1657188199040,
|
|
31
|
+
"expiresAt": 1659780190646
|
|
30
32
|
},
|
|
31
|
-
"1070260|@mojaloop/central-services-shared>@mojaloop/event-sdk>grpc>protobufjs>shins>
|
|
33
|
+
"1070260|@mojaloop/central-services-shared>@mojaloop/event-sdk>grpc>protobufjs>moment>shins>markdown-it>sanitize-html": {
|
|
32
34
|
"decision": "ignore",
|
|
33
|
-
"madeAt":
|
|
35
|
+
"madeAt": 1657188199954,
|
|
36
|
+
"expiresAt": 1659780190646
|
|
34
37
|
},
|
|
35
|
-
"
|
|
38
|
+
"1070412|ejs": {
|
|
36
39
|
"decision": "ignore",
|
|
37
|
-
"madeAt":
|
|
40
|
+
"madeAt": 1657188200902,
|
|
41
|
+
"expiresAt": 1659780190646
|
|
38
42
|
},
|
|
39
43
|
"1067553|swagger2openapi>better-ajv-errors>jsonpointer": {
|
|
40
44
|
"decision": "ignore",
|
|
41
|
-
"madeAt":
|
|
42
|
-
|
|
43
|
-
"1067553|widdershins>markdown-it>swagger2openapi>better-ajv-errors>jsonpointer": {
|
|
44
|
-
"decision": "ignore",
|
|
45
|
-
"madeAt": 1656679000804
|
|
46
|
-
},
|
|
47
|
-
"1067946|@mojaloop/central-services-shared>@mojaloop/event-sdk>grpc>protobufjs>shins>ejs>markdown-it>sanitize-html>widdershins>swagger2openapi>better-ajv-errors>jsonpointer>oas-validator>ajv": {
|
|
48
|
-
"decision": "ignore",
|
|
49
|
-
"madeAt": 1656679005322
|
|
45
|
+
"madeAt": 1657188201786,
|
|
46
|
+
"expiresAt": 1659780190646
|
|
50
47
|
},
|
|
51
48
|
"1067946|swagger2openapi>better-ajv-errors>jsonpointer>oas-validator>ajv": {
|
|
52
49
|
"decision": "ignore",
|
|
53
|
-
"madeAt":
|
|
54
|
-
|
|
55
|
-
"1067946|widdershins>markdown-it>swagger2openapi>better-ajv-errors>jsonpointer>oas-validator>ajv": {
|
|
56
|
-
"decision": "ignore",
|
|
57
|
-
"madeAt": 1656679005322
|
|
58
|
-
},
|
|
59
|
-
"1068310|@mojaloop/central-services-shared>@mojaloop/event-sdk>grpc>protobufjs>shins>ejs>markdown-it>sanitize-html>widdershins>swagger2openapi>better-ajv-errors>jsonpointer>oas-validator>ajv>yargs>yargs-parser": {
|
|
60
|
-
"decision": "ignore",
|
|
61
|
-
"madeAt": 1656679007475
|
|
62
|
-
},
|
|
63
|
-
"1068310|widdershins>markdown-it>swagger2openapi>better-ajv-errors>jsonpointer>oas-validator>ajv>yargs>yargs-parser": {
|
|
64
|
-
"decision": "ignore",
|
|
65
|
-
"madeAt": 1656679007475
|
|
66
|
-
},
|
|
67
|
-
"1070412|shins>ejs": {
|
|
68
|
-
"decision": "ignore",
|
|
69
|
-
"madeAt": 1656679958471
|
|
70
|
-
},
|
|
71
|
-
"1070030|shins>ejs>markdown-it": {
|
|
72
|
-
"decision": "ignore",
|
|
73
|
-
"madeAt": 1656679961621
|
|
74
|
-
},
|
|
75
|
-
"1068155|shins>ejs>markdown-it>sanitize-html": {
|
|
76
|
-
"decision": "ignore",
|
|
77
|
-
"madeAt": 1656679964361
|
|
78
|
-
},
|
|
79
|
-
"1070260|shins>ejs>markdown-it>sanitize-html": {
|
|
80
|
-
"decision": "ignore",
|
|
81
|
-
"madeAt": 1656679966871
|
|
82
|
-
},
|
|
83
|
-
"1070030|@mojaloop/central-services-shared>@mojaloop/event-sdk>grpc>protobufjs>shins>markdown-it": {
|
|
84
|
-
"decision": "ignore",
|
|
85
|
-
"madeAt": 1656681873020
|
|
86
|
-
},
|
|
87
|
-
"1068155|@mojaloop/central-services-shared>@mojaloop/event-sdk>grpc>protobufjs>shins>markdown-it>sanitize-html": {
|
|
88
|
-
"decision": "ignore",
|
|
89
|
-
"madeAt": 1656681876693
|
|
90
|
-
},
|
|
91
|
-
"1070260|@mojaloop/central-services-shared>@mojaloop/event-sdk>grpc>protobufjs>shins>markdown-it>sanitize-html": {
|
|
92
|
-
"decision": "ignore",
|
|
93
|
-
"madeAt": 1656681880214
|
|
50
|
+
"madeAt": 1657188202661,
|
|
51
|
+
"expiresAt": 1659780190646
|
|
94
52
|
},
|
|
95
53
|
"1068310|widdershins>markdown-it>yargs>yargs-parser": {
|
|
96
54
|
"decision": "ignore",
|
|
97
|
-
"madeAt":
|
|
55
|
+
"madeAt": 1657188203603,
|
|
56
|
+
"expiresAt": 1659780190646
|
|
98
57
|
}
|
|
99
58
|
},
|
|
100
59
|
"rules": {},
|
package/docker-compose.yml
CHANGED
|
@@ -22,9 +22,11 @@ services:
|
|
|
22
22
|
- "4002:4002"
|
|
23
23
|
depends_on:
|
|
24
24
|
- redis
|
|
25
|
-
command: sh -c "/wait4/wait4.js sdk-scheme-adapter
|
|
25
|
+
command: sh -c "/tmp/wait4/wait4.js sdk-scheme-adapter && npm run start"
|
|
26
|
+
# command: sh -c "/tmp/wait4/wait4.js sdk-scheme-adapter && sleep 999999"
|
|
26
27
|
volumes:
|
|
27
|
-
- ./docker/wait4:/wait4
|
|
28
|
+
- ./docker/wait4:/tmp/wait4
|
|
29
|
+
- ./secrets:/opt/app/secrets
|
|
28
30
|
|
|
29
31
|
ml-testing-toolkit:
|
|
30
32
|
networks:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mojaloop/sdk-scheme-adapter",
|
|
3
|
-
"version": "17.0.
|
|
3
|
+
"version": "17.0.2-snapshot.8",
|
|
4
4
|
"description": "An adapter for connecting to Mojaloop API enabled switches.",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"types": "src/index.d.ts",
|
|
@@ -11,8 +11,9 @@
|
|
|
11
11
|
"~": "src"
|
|
12
12
|
},
|
|
13
13
|
"scripts": {
|
|
14
|
-
"
|
|
15
|
-
"audit:
|
|
14
|
+
"start": "node src/index.js",
|
|
15
|
+
"audit:resolve": "npx resolve-audit --production",
|
|
16
|
+
"audit:check": "npx check-audit --production",
|
|
16
17
|
"build": "npm run build:openapi; npm run build:dto:outbound",
|
|
17
18
|
"build:openapi": "npm run build:openapi:inbound && npm run build:openapi:outbound",
|
|
18
19
|
"build:openapi:inbound": "openapi bundle --output ./src/InboundServer/api.yaml --ext yaml ./src/InboundServer/api_template.yaml",
|
|
@@ -20,7 +21,8 @@
|
|
|
20
21
|
"build:dto:outbound": "openapi-typescript ./src/OutboundServer/api.yaml --output ./src/OutboundServer/api_interfaces/openapi.d.ts",
|
|
21
22
|
"lint": "eslint ./src/",
|
|
22
23
|
"lint:fix": "eslint ./src/ --fix",
|
|
23
|
-
"test": "
|
|
24
|
+
"test": "npm run test:unit",
|
|
25
|
+
"test:unit": "jest --runInBand --ci --reporters=default --reporters=jest-junit --env=node test/unit/",
|
|
24
26
|
"test:int": "jest --ci --reporters=default --reporters=jest-junit --env=node test/integration",
|
|
25
27
|
"validate:api": "npm run validate:api:in; npm run validate:api:out",
|
|
26
28
|
"validate:api:in": "swagger-cli validate ./src/InboundServer/api.yaml",
|
|
@@ -55,20 +57,20 @@
|
|
|
55
57
|
"url": "git@github.com:mojaloop/sdk-scheme-adapter.git"
|
|
56
58
|
},
|
|
57
59
|
"dependencies": {
|
|
58
|
-
"@koa/cors": "^3.
|
|
60
|
+
"@koa/cors": "^3.3.0",
|
|
59
61
|
"@mojaloop/central-services-shared": "17.0.2",
|
|
60
|
-
"@mojaloop/sdk-standard-components": "^17.0
|
|
62
|
+
"@mojaloop/sdk-standard-components": "^17.1.0",
|
|
61
63
|
"ajv": "8.11.0",
|
|
62
64
|
"axios": "^0.27.2",
|
|
63
65
|
"co-body": "^6.1.0",
|
|
64
66
|
"dotenv": "^16.0.1",
|
|
65
|
-
"env-var": "^7.
|
|
66
|
-
"express": "^4.
|
|
67
|
+
"env-var": "^7.1.1",
|
|
68
|
+
"express": "^4.18.1",
|
|
67
69
|
"fast-json-patch": "^3.1.1",
|
|
68
70
|
"javascript-state-machine": "^3.1.0",
|
|
69
71
|
"js-yaml": "^4.1.0",
|
|
70
72
|
"json-schema-ref-parser": "^9.0.9",
|
|
71
|
-
"koa": "^2.13.
|
|
73
|
+
"koa": "^2.13.4",
|
|
72
74
|
"koa-body": "^5.0.0",
|
|
73
75
|
"lodash": "^4.17.21",
|
|
74
76
|
"module-alias": "^2.2.2",
|
|
@@ -77,31 +79,31 @@
|
|
|
77
79
|
"prom-client": "^14.0.1",
|
|
78
80
|
"promise-timeout": "^1.3.0",
|
|
79
81
|
"random-word-slugs": "^0.1.6",
|
|
80
|
-
"redis": "^4.
|
|
81
|
-
"uuidv4": "^6.2.
|
|
82
|
+
"redis": "^4.2.0",
|
|
83
|
+
"uuidv4": "^6.2.13",
|
|
82
84
|
"ws": "^8.8.0"
|
|
83
85
|
},
|
|
84
86
|
"devDependencies": {
|
|
85
87
|
"@babel/core": "^7.18.6",
|
|
86
88
|
"@babel/preset-env": "^7.18.6",
|
|
87
89
|
"@mojaloop/api-snippets": "^14.0.0",
|
|
88
|
-
"@redocly/openapi-cli": "^1.0.0-beta.
|
|
90
|
+
"@redocly/openapi-cli": "^1.0.0-beta.94",
|
|
89
91
|
"@types/jest": "^28.1.4",
|
|
90
92
|
"babel-jest": "^28.1.2",
|
|
91
|
-
"eslint": "^8.
|
|
93
|
+
"eslint": "^8.19.0",
|
|
92
94
|
"eslint-config-airbnb-base": "^15.0.0",
|
|
93
|
-
"eslint-plugin-import": "^2.
|
|
95
|
+
"eslint-plugin-import": "^2.26.0",
|
|
94
96
|
"eslint-plugin-jest": "^26.5.3",
|
|
95
97
|
"jest": "^28.1.2",
|
|
96
98
|
"jest-junit": "^14.0.0",
|
|
97
99
|
"nock": "^13.2.8",
|
|
98
|
-
"npm-audit-resolver": "^3.0.0-
|
|
99
|
-
"npm-check-updates": "^15.
|
|
100
|
+
"npm-audit-resolver": "^3.0.0-7",
|
|
101
|
+
"npm-check-updates": "^15.2.1",
|
|
100
102
|
"openapi-response-validator": "^12.0.0",
|
|
101
|
-
"openapi-typescript": "^5.4.
|
|
103
|
+
"openapi-typescript": "^5.4.1",
|
|
102
104
|
"redis-mock": "^0.56.3",
|
|
103
|
-
"standard-version": "^9.
|
|
104
|
-
"supertest": "^6.
|
|
105
|
+
"standard-version": "^9.5.0",
|
|
106
|
+
"supertest": "^6.2.4",
|
|
105
107
|
"swagger-cli": "^4.0.4"
|
|
106
108
|
}
|
|
107
109
|
}
|
package/src/index.js
CHANGED
|
@@ -78,7 +78,6 @@ class Server extends EventEmitter {
|
|
|
78
78
|
this.conf,
|
|
79
79
|
this.logger.push(LOG_ID.INBOUND),
|
|
80
80
|
this.cache,
|
|
81
|
-
this.metricsClient,
|
|
82
81
|
this.wso2,
|
|
83
82
|
);
|
|
84
83
|
this.inboundServer.on('error', (...args) => {
|
|
@@ -195,7 +194,6 @@ class Server extends EventEmitter {
|
|
|
195
194
|
newConf,
|
|
196
195
|
this.logger.push(LOG_ID.INBOUND),
|
|
197
196
|
this.cache,
|
|
198
|
-
this.metricsClient,
|
|
199
197
|
this.wso2,
|
|
200
198
|
);
|
|
201
199
|
this.inboundServer.on('error', (...args) => {
|
|
@@ -16,10 +16,7 @@ const StateMachine = require('javascript-state-machine');
|
|
|
16
16
|
const { MojaloopRequests, Errors } = require('@mojaloop/sdk-standard-components');
|
|
17
17
|
const { BackendError } = require('./common');
|
|
18
18
|
|
|
19
|
-
const
|
|
20
|
-
'ERROR_OCCURRED': 'ERROR_OCCURRED',
|
|
21
|
-
'COMPLETED': 'COMPLETED',
|
|
22
|
-
};
|
|
19
|
+
const { SDKStateEnum } = require('./common');
|
|
23
20
|
|
|
24
21
|
|
|
25
22
|
/**
|
|
@@ -283,11 +280,11 @@ class AccountsModel {
|
|
|
283
280
|
|
|
284
281
|
switch(this._data.currentState) {
|
|
285
282
|
case 'succeeded':
|
|
286
|
-
resp.currentState =
|
|
283
|
+
resp.currentState = SDKStateEnum.COMPLETED;
|
|
287
284
|
break;
|
|
288
285
|
|
|
289
286
|
case 'errored':
|
|
290
|
-
resp.currentState =
|
|
287
|
+
resp.currentState = SDKStateEnum.ERROR_OCCURRED;
|
|
291
288
|
break;
|
|
292
289
|
|
|
293
290
|
default:
|
|
@@ -295,7 +292,7 @@ class AccountsModel {
|
|
|
295
292
|
`Account model response being returned from an unexpected state: ${this._data.currentState}. ` +
|
|
296
293
|
'Returning ERROR_OCCURRED state'
|
|
297
294
|
);
|
|
298
|
-
resp.currentState =
|
|
295
|
+
resp.currentState = SDKStateEnum.ERROR_OCCURRED;
|
|
299
296
|
break;
|
|
300
297
|
}
|
|
301
298
|
return resp;
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
const util = require('util');
|
|
13
13
|
|
|
14
14
|
const PSM = require('./common').PersistentStateMachine;
|
|
15
|
+
const { SDKStateEnum } = require('./common');
|
|
15
16
|
const MojaloopRequests = require('@mojaloop/sdk-standard-components').MojaloopRequests;
|
|
16
17
|
const deferredJob = require('./lib').deferredJob;
|
|
17
18
|
|
|
@@ -123,9 +124,9 @@ function generate({
|
|
|
123
124
|
}
|
|
124
125
|
|
|
125
126
|
const mapCurrentState = {
|
|
126
|
-
start:
|
|
127
|
-
succeeded:
|
|
128
|
-
errored:
|
|
127
|
+
start: SDKStateEnum.WAITING_FOR_ACTION,
|
|
128
|
+
succeeded: SDKStateEnum.COMPLETED,
|
|
129
|
+
errored: SDKStateEnum.ERROR_OCCURRED
|
|
129
130
|
};
|
|
130
131
|
|
|
131
132
|
/**
|
|
@@ -22,7 +22,9 @@ const {
|
|
|
22
22
|
Errors,
|
|
23
23
|
} = require('@mojaloop/sdk-standard-components');
|
|
24
24
|
const shared = require('./lib/shared');
|
|
25
|
-
const {
|
|
25
|
+
const { SDKStateEnum } = require('./common');
|
|
26
|
+
const FSPIOPTransferStateEnum = require('@mojaloop/central-services-shared').Enum.Transfers.TransferState;
|
|
27
|
+
const FSPIOPBulkTransferStateEnum = require('@mojaloop/central-services-shared').Enum.Transfers.BulkTransferState;
|
|
26
28
|
|
|
27
29
|
/**
|
|
28
30
|
* Models the operations required for performing inbound transfers
|
|
@@ -74,7 +76,7 @@ class InboundTransfersModel {
|
|
|
74
76
|
|
|
75
77
|
updateStateWithError(err) {
|
|
76
78
|
this.data.lastError = err;
|
|
77
|
-
this.data.currentState =
|
|
79
|
+
this.data.currentState = SDKStateEnum.ERROR_OCCURRED;
|
|
78
80
|
return this._save();
|
|
79
81
|
}
|
|
80
82
|
|
|
@@ -188,7 +190,7 @@ class InboundTransfersModel {
|
|
|
188
190
|
headers: request.headers,
|
|
189
191
|
body: request.body
|
|
190
192
|
},
|
|
191
|
-
currentState:
|
|
193
|
+
currentState: SDKStateEnum.QUOTE_REQUEST_RECEIVED,
|
|
192
194
|
initiatedTimestamp: new Date().toISOString(),
|
|
193
195
|
};
|
|
194
196
|
|
|
@@ -237,7 +239,7 @@ class InboundTransfersModel {
|
|
|
237
239
|
headers: res.originalRequest.headers,
|
|
238
240
|
body: res.originalRequest.body,
|
|
239
241
|
};
|
|
240
|
-
this.data.currentState =
|
|
242
|
+
this.data.currentState = SDKStateEnum.WAITING_FOR_QUOTE_ACCEPTANCE;
|
|
241
243
|
await this._save();
|
|
242
244
|
return res;
|
|
243
245
|
}
|
|
@@ -342,7 +344,7 @@ class InboundTransfersModel {
|
|
|
342
344
|
|
|
343
345
|
// persist our state so we have a record if we crash during processing the prepare
|
|
344
346
|
this.data.prepare = request;
|
|
345
|
-
this.data.currentState =
|
|
347
|
+
this.data.currentState = SDKStateEnum.PREPARE_RECEIVED;
|
|
346
348
|
await this._save();
|
|
347
349
|
|
|
348
350
|
// Calculate or retrieve fulfilment and condition
|
|
@@ -390,7 +392,7 @@ class InboundTransfersModel {
|
|
|
390
392
|
// create a mojaloop transfer fulfil response
|
|
391
393
|
const mojaloopResponse = {
|
|
392
394
|
completedTimestamp: response.completedTimestamp || new Date(),
|
|
393
|
-
transferState: response.transferState || (this._reserveNotification ?
|
|
395
|
+
transferState: response.transferState || (this._reserveNotification ? FSPIOPTransferStateEnum.RESERVED : FSPIOPTransferStateEnum.COMMITTED),
|
|
394
396
|
fulfilment: response.fulfilment || fulfilment,
|
|
395
397
|
...response.extensionList && {
|
|
396
398
|
extensionList: {
|
|
@@ -406,7 +408,7 @@ class InboundTransfersModel {
|
|
|
406
408
|
headers: res.originalRequest.headers,
|
|
407
409
|
body: res.originalRequest.body,
|
|
408
410
|
};
|
|
409
|
-
this.data.currentState = response.transferState || (this._reserveNotification ?
|
|
411
|
+
this.data.currentState = response.transferState || (this._reserveNotification ? SDKStateEnum.RESERVED : SDKStateEnum.COMPLETED);
|
|
410
412
|
await this._save();
|
|
411
413
|
return res;
|
|
412
414
|
} catch(err) {
|
|
@@ -679,7 +681,7 @@ class InboundTransfersModel {
|
|
|
679
681
|
// create a mojaloop transfer fulfil response
|
|
680
682
|
const mojaloopResponse = {
|
|
681
683
|
completedTimestamp: new Date(),
|
|
682
|
-
bulkTransferState:
|
|
684
|
+
bulkTransferState: FSPIOPBulkTransferStateEnum.COMMITTED,
|
|
683
685
|
};
|
|
684
686
|
|
|
685
687
|
if (response.individualTransferResults && response.individualTransferResults.length) {
|
|
@@ -784,18 +786,18 @@ class InboundTransfersModel {
|
|
|
784
786
|
// tag the final notification body on to the state
|
|
785
787
|
this.data.finalNotification = body;
|
|
786
788
|
|
|
787
|
-
if(body.transferState ===
|
|
789
|
+
if(body.transferState === FSPIOPTransferStateEnum.COMMITTED) {
|
|
788
790
|
// if the transfer was successful in the switch, set the overall transfer state to COMPLETED
|
|
789
|
-
this.data.currentState =
|
|
791
|
+
this.data.currentState = SDKStateEnum.COMPLETED;
|
|
790
792
|
}
|
|
791
|
-
else if(body.transferState ===
|
|
793
|
+
else if(body.transferState === FSPIOPTransferStateEnum.ABORTED) {
|
|
792
794
|
// if the transfer was ABORTED in the switch, set the overall transfer state to ABORTED
|
|
793
|
-
this.data.currentState =
|
|
795
|
+
this.data.currentState = SDKStateEnum.ABORTED;
|
|
794
796
|
}
|
|
795
797
|
else {
|
|
796
798
|
// if the final notification has anything other than COMMITTED as the final state, set an error
|
|
797
799
|
// in the transfer state.
|
|
798
|
-
this.data.currentState =
|
|
800
|
+
this.data.currentState = SDKStateEnum.ERROR_OCCURED;
|
|
799
801
|
this.data.lastError = 'Final notification state not COMMITTED';
|
|
800
802
|
}
|
|
801
803
|
|
|
@@ -845,7 +847,7 @@ class InboundTransfersModel {
|
|
|
845
847
|
originalError: err.stack || util.inspect(err),
|
|
846
848
|
mojaloopError: mojaloopError,
|
|
847
849
|
};
|
|
848
|
-
this.data.currentState =
|
|
850
|
+
this.data.currentState = SDKStateEnum.ERROR_OCCURRED;
|
|
849
851
|
await this._save();
|
|
850
852
|
}
|
|
851
853
|
return mojaloopError;
|
|
@@ -17,10 +17,7 @@ const { MojaloopRequests } = require('@mojaloop/sdk-standard-components');
|
|
|
17
17
|
const shared = require('./lib/shared');
|
|
18
18
|
const { BackendError } = require('./common');
|
|
19
19
|
|
|
20
|
-
const
|
|
21
|
-
'ERROR_OCCURRED': 'ERROR_OCCURRED',
|
|
22
|
-
'COMPLETED': 'COMPLETED',
|
|
23
|
-
};
|
|
20
|
+
const { SDKStateEnum } = require('./common');
|
|
24
21
|
|
|
25
22
|
|
|
26
23
|
/**
|
|
@@ -381,16 +378,16 @@ class OutboundBulkQuotesModel {
|
|
|
381
378
|
|
|
382
379
|
switch(this.data.currentState) {
|
|
383
380
|
case 'succeeded':
|
|
384
|
-
resp.currentState =
|
|
381
|
+
resp.currentState = SDKStateEnum.COMPLETED;
|
|
385
382
|
break;
|
|
386
383
|
|
|
387
384
|
case 'errored':
|
|
388
|
-
resp.currentState =
|
|
385
|
+
resp.currentState = SDKStateEnum.ERROR_OCCURRED;
|
|
389
386
|
break;
|
|
390
387
|
|
|
391
388
|
default:
|
|
392
389
|
this._logger.log(`Bulk quote model response being returned from an unexpected state: ${this.data.currentState}. Returning ERROR_OCCURRED state`);
|
|
393
|
-
resp.currentState =
|
|
390
|
+
resp.currentState = SDKStateEnum.ERROR_OCCURRED;
|
|
394
391
|
break;
|
|
395
392
|
}
|
|
396
393
|
|
|
@@ -16,10 +16,7 @@ const StateMachine = require('javascript-state-machine');
|
|
|
16
16
|
const { MojaloopRequests } = require('@mojaloop/sdk-standard-components');
|
|
17
17
|
const { BackendError } = require('./common');
|
|
18
18
|
|
|
19
|
-
const
|
|
20
|
-
'ERROR_OCCURRED': 'ERROR_OCCURRED',
|
|
21
|
-
'COMPLETED': 'COMPLETED',
|
|
22
|
-
};
|
|
19
|
+
const { SDKStateEnum } = require('./common');
|
|
23
20
|
|
|
24
21
|
/**
|
|
25
22
|
* Models the state machine and operations required for performing an outbound bulk transfer
|
|
@@ -373,16 +370,16 @@ class OutboundBulkTransfersModel {
|
|
|
373
370
|
|
|
374
371
|
switch(this.data.currentState) {
|
|
375
372
|
case 'succeeded':
|
|
376
|
-
resp.currentState =
|
|
373
|
+
resp.currentState = SDKStateEnum.COMPLETED;
|
|
377
374
|
break;
|
|
378
375
|
|
|
379
376
|
case 'errored':
|
|
380
|
-
resp.currentState =
|
|
377
|
+
resp.currentState = SDKStateEnum.ERROR_OCCURRED;
|
|
381
378
|
break;
|
|
382
379
|
|
|
383
380
|
default:
|
|
384
381
|
this._logger.log(`Bulk transfer model response being returned from an unexpected state: ${this.data.currentState}. Returning ERROR_OCCURRED state`);
|
|
385
|
-
resp.currentState =
|
|
382
|
+
resp.currentState = SDKStateEnum.ERROR_OCCURRED;
|
|
386
383
|
break;
|
|
387
384
|
}
|
|
388
385
|
|
|
@@ -17,12 +17,7 @@ const { MojaloopRequests } = require('@mojaloop/sdk-standard-components');
|
|
|
17
17
|
const { BackendError } = require('./common');
|
|
18
18
|
const PartiesModel = require('./PartiesModel');
|
|
19
19
|
|
|
20
|
-
const
|
|
21
|
-
'WAITING_FOR_PARTY_ACCEPTANCE': 'WAITING_FOR_PARTY_ACCEPTANCE',
|
|
22
|
-
'WAITING_FOR_QUOTE_ACCEPTANCE': 'WAITING_FOR_QUOTE_ACCEPTANCE',
|
|
23
|
-
'ERROR_OCCURRED': 'ERROR_OCCURRED',
|
|
24
|
-
'COMPLETED': 'COMPLETED',
|
|
25
|
-
};
|
|
20
|
+
const { SDKStateEnum } = require('./common');
|
|
26
21
|
|
|
27
22
|
class OutboundRequestToPayModel {
|
|
28
23
|
|
|
@@ -480,20 +475,20 @@ class OutboundRequestToPayModel {
|
|
|
480
475
|
|
|
481
476
|
switch(this.data.currentState) {
|
|
482
477
|
case 'payeeResolved':
|
|
483
|
-
resp.currentState =
|
|
478
|
+
resp.currentState = SDKStateEnum.WAITING_FOR_PARTY_ACCEPTANCE;
|
|
484
479
|
break;
|
|
485
480
|
|
|
486
481
|
case 'succeeded':
|
|
487
|
-
resp.currentState =
|
|
482
|
+
resp.currentState = SDKStateEnum.COMPLETED;
|
|
488
483
|
break;
|
|
489
484
|
|
|
490
485
|
case 'errored':
|
|
491
|
-
resp.currentState =
|
|
486
|
+
resp.currentState = SDKStateEnum.ERROR_OCCURRED;
|
|
492
487
|
break;
|
|
493
488
|
|
|
494
489
|
default:
|
|
495
490
|
this._logger.log(`Transaction Request model response being returned from an unexpected state: ${this.data.currentState}. Returning ERROR_OCCURRED state`);
|
|
496
|
-
resp.currentState =
|
|
491
|
+
resp.currentState = SDKStateEnum.ERROR_OCCURRED;
|
|
497
492
|
break;
|
|
498
493
|
}
|
|
499
494
|
|
|
@@ -18,13 +18,7 @@ const shared = require('./lib/shared');
|
|
|
18
18
|
const { BackendError } = require('./common');
|
|
19
19
|
const PartiesModel = require('./PartiesModel');
|
|
20
20
|
|
|
21
|
-
const
|
|
22
|
-
'WAITING_FOR_QUOTE_ACCEPTANCE': 'WAITING_FOR_QUOTE_ACCEPTANCE',
|
|
23
|
-
'WAITING_FOR_OTP_ACCEPTANCE': 'WAITING_FOR_OTP_ACCEPTANCE',
|
|
24
|
-
'ERROR_OCCURRED': 'ERROR_OCCURRED',
|
|
25
|
-
'COMPLETED': 'COMPLETED',
|
|
26
|
-
};
|
|
27
|
-
|
|
21
|
+
const { SDKStateEnum } = require('./common');
|
|
28
22
|
|
|
29
23
|
/**
|
|
30
24
|
* Models the state machine and operations required for performing an outbound transfer
|
|
@@ -826,24 +820,24 @@ class OutboundRequestToPayTransferModel {
|
|
|
826
820
|
|
|
827
821
|
switch(this.data.currentState) {
|
|
828
822
|
case 'quoteReceived':
|
|
829
|
-
resp.currentState =
|
|
823
|
+
resp.currentState = SDKStateEnum.WAITING_FOR_QUOTE_ACCEPTANCE;
|
|
830
824
|
break;
|
|
831
825
|
|
|
832
826
|
case 'otpReceived':
|
|
833
|
-
resp.currentState =
|
|
827
|
+
resp.currentState = SDKStateEnum.WAITING_FOR_OTP_ACCEPTANCE;
|
|
834
828
|
break;
|
|
835
829
|
|
|
836
830
|
case 'succeeded':
|
|
837
|
-
resp.currentState =
|
|
831
|
+
resp.currentState = SDKStateEnum.COMPLETED;
|
|
838
832
|
break;
|
|
839
833
|
|
|
840
834
|
case 'errored':
|
|
841
|
-
resp.currentState =
|
|
835
|
+
resp.currentState = SDKStateEnum.ERROR_OCCURRED;
|
|
842
836
|
break;
|
|
843
837
|
|
|
844
838
|
default:
|
|
845
839
|
this._logger.log(`Transfer model response being returned from an unexpected state: ${this.data.currentState}. Returning ERROR_OCCURRED state`);
|
|
846
|
-
resp.currentState =
|
|
840
|
+
resp.currentState = SDKStateEnum.ERROR_OCCURRED;
|
|
847
841
|
break;
|
|
848
842
|
}
|
|
849
843
|
|