itrm-tools 1.2.8 → 1.3.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.
Files changed (120) hide show
  1. package/dist/api/bitso/BitsoApiConnection.d.ts +26 -0
  2. package/dist/api/bitso/BitsoApiConnection.js +121 -0
  3. package/dist/api/bitso/BitsoApiConnection.js.map +1 -0
  4. package/dist/api/bitso/tools/BitsoBalance.d.ts +17 -0
  5. package/dist/api/bitso/tools/BitsoBalance.js +29 -0
  6. package/dist/api/bitso/tools/BitsoBalance.js.map +1 -0
  7. package/dist/api/bitso/tools/BitsoBook.d.ts +38 -0
  8. package/dist/api/bitso/tools/BitsoBook.js +60 -0
  9. package/dist/api/bitso/tools/BitsoBook.js.map +1 -0
  10. package/dist/api/bitso/tools/BitsoOrder.d.ts +42 -0
  11. package/dist/api/bitso/tools/BitsoOrder.js +30 -0
  12. package/dist/api/bitso/tools/BitsoOrder.js.map +1 -0
  13. package/dist/api/bitso/tools/BitsoOrderBook.d.ts +14 -0
  14. package/dist/api/bitso/tools/BitsoOrderBook.js +24 -0
  15. package/dist/api/bitso/tools/BitsoOrderBook.js.map +1 -0
  16. package/dist/api/bitso/tools/BitsoTrade.d.ts +41 -0
  17. package/dist/api/bitso/tools/BitsoTrade.js +46 -0
  18. package/dist/api/bitso/tools/BitsoTrade.js.map +1 -0
  19. package/dist/api/check/CheckableAPIRouter.js +0 -2
  20. package/dist/api/check/CheckableAPIRouter.js.map +1 -1
  21. package/dist/api/check/RoleServicePermissionsChecker.d.ts +13 -0
  22. package/dist/api/check/RoleServicePermissionsChecker.js +92 -0
  23. package/dist/api/check/RoleServicePermissionsChecker.js.map +1 -0
  24. package/dist/api/check/ServiceSessionChecker.d.ts +28 -0
  25. package/dist/api/check/ServiceSessionChecker.js +119 -0
  26. package/dist/api/check/ServiceSessionChecker.js.map +1 -0
  27. package/dist/api/external/kyc/KycApiManager.d.ts +84 -0
  28. package/dist/api/external/kyc/KycApiManager.js +148 -0
  29. package/dist/api/external/kyc/KycApiManager.js.map +1 -0
  30. package/dist/api/request/crud/cetus/AccountManager.d.ts +36 -0
  31. package/dist/api/request/crud/cetus/AccountManager.js +82 -0
  32. package/dist/api/request/crud/cetus/AccountManager.js.map +1 -0
  33. package/dist/api/request/crud/cetus/AssetsManager.d.ts +38 -0
  34. package/dist/api/request/crud/cetus/AssetsManager.js +82 -0
  35. package/dist/api/request/crud/cetus/AssetsManager.js.map +1 -0
  36. package/dist/api/request/crud/cetus/BalanceChangeLogs.d.ts +38 -0
  37. package/dist/api/request/crud/cetus/BalanceChangeLogs.js +90 -0
  38. package/dist/api/request/crud/cetus/BalanceChangeLogs.js.map +1 -0
  39. package/dist/api/request/crud/cetus/CandleManager.d.ts +32 -0
  40. package/dist/api/request/crud/cetus/CandleManager.js +17 -0
  41. package/dist/api/request/crud/cetus/CandleManager.js.map +1 -0
  42. package/dist/api/request/crud/cetus/ContributorActionManager.d.ts +59 -0
  43. package/dist/api/request/crud/cetus/ContributorActionManager.js +103 -0
  44. package/dist/api/request/crud/cetus/ContributorActionManager.js.map +1 -0
  45. package/dist/api/request/crud/cetus/ContributorManager.d.ts +33 -0
  46. package/dist/api/request/crud/cetus/ContributorManager.js +75 -0
  47. package/dist/api/request/crud/cetus/ContributorManager.js.map +1 -0
  48. package/dist/api/request/crud/cetus/CounterpartyBalances.d.ts +44 -0
  49. package/dist/api/request/crud/cetus/CounterpartyBalances.js +96 -0
  50. package/dist/api/request/crud/cetus/CounterpartyBalances.js.map +1 -0
  51. package/dist/api/request/crud/cetus/ExpenseManager.d.ts +45 -0
  52. package/dist/api/request/crud/cetus/ExpenseManager.js +88 -0
  53. package/dist/api/request/crud/cetus/ExpenseManager.js.map +1 -0
  54. package/dist/api/request/crud/cetus/IntermediaryManager.d.ts +38 -0
  55. package/dist/api/request/crud/cetus/IntermediaryManager.js +82 -0
  56. package/dist/api/request/crud/cetus/IntermediaryManager.js.map +1 -0
  57. package/dist/api/request/crud/cetus/ModificationManager.d.ts +44 -0
  58. package/dist/api/request/crud/cetus/ModificationManager.js +102 -0
  59. package/dist/api/request/crud/cetus/ModificationManager.js.map +1 -0
  60. package/dist/api/request/crud/cetus/NavManager.d.ts +45 -0
  61. package/dist/api/request/crud/cetus/NavManager.js +88 -0
  62. package/dist/api/request/crud/cetus/NavManager.js.map +1 -0
  63. package/dist/api/request/crud/cetus/OperationsManager.d.ts +58 -0
  64. package/dist/api/request/crud/cetus/OperationsManager.js +98 -0
  65. package/dist/api/request/crud/cetus/OperationsManager.js.map +1 -0
  66. package/dist/api/request/crud/cetus/PairsManager.d.ts +40 -0
  67. package/dist/api/request/crud/cetus/PairsManager.js +84 -0
  68. package/dist/api/request/crud/cetus/PairsManager.js.map +1 -0
  69. package/dist/api/request/crud/cetus/PnlManager.d.ts +45 -0
  70. package/dist/api/request/crud/cetus/PnlManager.js +86 -0
  71. package/dist/api/request/crud/cetus/PnlManager.js.map +1 -0
  72. package/dist/api/request/crud/cetus/RatesManager.d.ts +41 -0
  73. package/dist/api/request/crud/cetus/RatesManager.js +94 -0
  74. package/dist/api/request/crud/cetus/RatesManager.js.map +1 -0
  75. package/dist/api/request/crud/cetus/SourceManager.d.ts +35 -0
  76. package/dist/api/request/crud/cetus/SourceManager.js +84 -0
  77. package/dist/api/request/crud/cetus/SourceManager.js.map +1 -0
  78. package/dist/api/request/crud/cetus/StrategyManager.d.ts +42 -0
  79. package/dist/api/request/crud/cetus/StrategyManager.js +88 -0
  80. package/dist/api/request/crud/cetus/StrategyManager.js.map +1 -0
  81. package/dist/api/request/crud/cetus/StrategyOrderManager.d.ts +46 -0
  82. package/dist/api/request/crud/cetus/StrategyOrderManager.js +92 -0
  83. package/dist/api/request/crud/cetus/StrategyOrderManager.js.map +1 -0
  84. package/dist/api/request/crud/cetus/TransactionsManager.d.ts +52 -0
  85. package/dist/api/request/crud/cetus/TransactionsManager.js +96 -0
  86. package/dist/api/request/crud/cetus/TransactionsManager.js.map +1 -0
  87. package/dist/api/request/crud/common/ActivityHistoryManager.d.ts +40 -0
  88. package/dist/api/request/crud/common/ActivityHistoryManager.js +86 -0
  89. package/dist/api/request/crud/common/ActivityHistoryManager.js.map +1 -0
  90. package/dist/api/request/crud/common/AvailablePlatformManager.d.ts +37 -0
  91. package/dist/api/request/crud/common/AvailablePlatformManager.js +84 -0
  92. package/dist/api/request/crud/common/AvailablePlatformManager.js.map +1 -0
  93. package/dist/api/request/crud/common/ComponentManager.d.ts +53 -0
  94. package/dist/api/request/crud/common/ComponentManager.js +75 -0
  95. package/dist/api/request/crud/common/ComponentManager.js.map +1 -0
  96. package/dist/api/request/crud/common/KeyManager.d.ts +39 -0
  97. package/dist/api/request/crud/common/KeyManager.js +88 -0
  98. package/dist/api/request/crud/common/KeyManager.js.map +1 -0
  99. package/dist/api/request/crud/common/PlatformManager.d.ts +45 -0
  100. package/dist/api/request/crud/common/PlatformManager.js +79 -0
  101. package/dist/api/request/crud/common/PlatformManager.js.map +1 -0
  102. package/dist/api/request/crud/common/RoleManager.d.ts +52 -0
  103. package/dist/api/request/crud/common/RoleManager.js +72 -0
  104. package/dist/api/request/crud/common/RoleManager.js.map +1 -0
  105. package/dist/api/request/crud/common/StatusManager.d.ts +34 -0
  106. package/dist/api/request/crud/common/StatusManager.js +74 -0
  107. package/dist/api/request/crud/common/StatusManager.js.map +1 -0
  108. package/dist/api/request/crud/common/TypeManager.d.ts +33 -0
  109. package/dist/api/request/crud/common/TypeManager.js +76 -0
  110. package/dist/api/request/crud/common/TypeManager.js.map +1 -0
  111. package/dist/api/request/crud/common/UserCredentialsManager.d.ts +39 -0
  112. package/dist/api/request/crud/common/UserCredentialsManager.js +84 -0
  113. package/dist/api/request/crud/common/UserCredentialsManager.js.map +1 -0
  114. package/dist/api/request/crud/common/UserManager.d.ts +35 -0
  115. package/dist/api/request/crud/common/UserManager.js +80 -0
  116. package/dist/api/request/crud/common/UserManager.js.map +1 -0
  117. package/dist/index.d.ts +36 -0
  118. package/dist/index.js +71 -1
  119. package/dist/index.js.map +1 -1
  120. package/package.json +1 -1
@@ -0,0 +1,92 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RoleServicePermissionsChecker = void 0;
13
+ const RequestAxiosCall_1 = require("../request/RequestAxiosCall");
14
+ const RoleManager_1 = require("../request/crud/common/RoleManager");
15
+ class RoleServicePermissionsChecker {
16
+ constructor(service, sessionServiceUrl, sessionServiceCrud) {
17
+ this.service = service;
18
+ this.sessionServiceUrl = sessionServiceUrl;
19
+ this.roleManager = new RoleManager_1.RoleManager(`${sessionServiceCrud}/v1`);
20
+ }
21
+ getConfig() {
22
+ return {
23
+ check: "rolePermissionService",
24
+ };
25
+ }
26
+ apply(config, req) {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ var _a, _b, _c;
29
+ try {
30
+ const { platform } = req.headers;
31
+ let headers = {
32
+ headers: {
33
+ "Authorization": req.headers.authorization,
34
+ "platform": platform
35
+ }
36
+ };
37
+ // Verify the JWT and platform with the session service
38
+ let verification = yield RequestAxiosCall_1.RequestAxiosCall.post(`${this.sessionServiceUrl}/v1/verify`, { jwt: ((_a = req.headers.authorization) !== null && _a !== void 0 ? _a : 'NoToken').replace("Bearer ", ""), platform: platform }, headers);
39
+ // Fetch the service role
40
+ let role = yield this.roleManager.find({ name: verification === null || verification === void 0 ? void 0 : verification.role, config: headers });
41
+ // Check if the service and endpoint are allowed
42
+ return this.checkServicePermissions((_c = (_b = role === null || role === void 0 ? void 0 : role.permissions) === null || _b === void 0 ? void 0 : _b.services) !== null && _c !== void 0 ? _c : {}, req, verification);
43
+ }
44
+ catch (error) {
45
+ return this.unexpectedErrorRejection(error);
46
+ }
47
+ });
48
+ }
49
+ // Checks if the requested service, method, and path are allowed for the user's role.
50
+ checkServicePermissions(permissions, req, verification) {
51
+ if (permissions[this.service]) {
52
+ if (this.isMethodAndPathAllowed(permissions[this.service], req))
53
+ return { approved: true, payload: verification };
54
+ return {
55
+ approved: false,
56
+ rejection: {
57
+ code: 401,
58
+ payload: {
59
+ status: "Error",
60
+ message: `Method or Path are not allowed: ${req.method} ${req.baseUrl + req.path.replace(/\/\d+$/, "")}`
61
+ }
62
+ }
63
+ };
64
+ }
65
+ return {
66
+ approved: false,
67
+ rejection: {
68
+ code: 401,
69
+ payload: {
70
+ status: "Error",
71
+ message: `Service is not allowed: ${this.service}`
72
+ }
73
+ }
74
+ };
75
+ }
76
+ //Checks if the HTTP method and path are allowed in the permissions object.
77
+ isMethodAndPathAllowed(permissions, req) {
78
+ return permissions[req.method] && permissions[req.method][req.baseUrl + req.path.replace(/\/\d+$/, "")];
79
+ }
80
+ unexpectedErrorRejection(error) {
81
+ var _a, _b, _c, _d;
82
+ return {
83
+ approved: false,
84
+ rejection: {
85
+ code: (_b = (_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.status) !== null && _b !== void 0 ? _b : 500,
86
+ payload: { status: "Error", message: (_d = (_c = error === null || error === void 0 ? void 0 : error.response) === null || _c === void 0 ? void 0 : _c.data) !== null && _d !== void 0 ? _d : error }
87
+ },
88
+ };
89
+ }
90
+ }
91
+ exports.RoleServicePermissionsChecker = RoleServicePermissionsChecker;
92
+ //# sourceMappingURL=RoleServicePermissionsChecker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoleServicePermissionsChecker.js","sourceRoot":"","sources":["../../../src/api/check/RoleServicePermissionsChecker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { Request } from "express";
2
+ import { APICheck, APICheckConfig, APICheckResult } from "./APIChecker";
3
+ export interface IServiceSessionConfig {
4
+ name: string;
5
+ url: string;
6
+ }
7
+ export interface IServiceCredentials {
8
+ apiKey: string;
9
+ apiSecret: string;
10
+ }
11
+ export declare class ServiceSessionChecker implements APICheck {
12
+ private token;
13
+ private readonly sessionServiceUrl;
14
+ private readonly config;
15
+ constructor(sessionServiceUrl: string, config: IServiceSessionConfig);
16
+ getConfig(): APICheckConfig;
17
+ apply(config: APICheckConfig, req: Request): Promise<APICheckResult>;
18
+ private createToken;
19
+ sign(params: {
20
+ method: string;
21
+ path: string;
22
+ }): Promise<{
23
+ headers: {
24
+ Authorization: string;
25
+ };
26
+ } | undefined>;
27
+ private getServiceCredentials;
28
+ }
@@ -0,0 +1,119 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ServiceSessionChecker = void 0;
13
+ const crypto_js_1 = require("crypto-js");
14
+ const RequestAxiosCall_1 = require("../request/RequestAxiosCall");
15
+ class ServiceSessionChecker {
16
+ constructor(sessionServiceUrl, config) {
17
+ this.token = "";
18
+ this.sessionServiceUrl = sessionServiceUrl;
19
+ this.config = config;
20
+ }
21
+ getConfig() {
22
+ return {
23
+ check: "serviceSession"
24
+ };
25
+ }
26
+ apply(config, req) {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ var _a;
29
+ try {
30
+ // Verifies the session token by calling the session service, if it exists approve the request else create new token
31
+ const verification = yield RequestAxiosCall_1.RequestAxiosCall.post(`${this.sessionServiceUrl}/v1/verify`, {
32
+ jwt: ((_a = req.headers.authorization) !== null && _a !== void 0 ? _a : 'NoToken').replace("Bearer ", ""),
33
+ platform: req.headers.platform
34
+ }, {
35
+ headers: { "Authorization": this.token }
36
+ });
37
+ console.log("> verification:", verification);
38
+ return {
39
+ approved: true,
40
+ payload: { headers: { "Authorization": this.token } }
41
+ };
42
+ }
43
+ catch (err) {
44
+ // If verification fails, create a new token
45
+ return yield this.createToken();
46
+ }
47
+ });
48
+ }
49
+ // Generate a new session token
50
+ createToken() {
51
+ return __awaiter(this, void 0, void 0, function* () {
52
+ var _a, _b, _c, _d, _e;
53
+ try {
54
+ const headers = yield this.sign({ method: "POST", path: "/login" });
55
+ if (headers) {
56
+ // Call the session service to create a new session
57
+ const session = yield RequestAxiosCall_1.RequestAxiosCall.post(`${this.sessionServiceUrl}/service/login`, { service: this.config.name }, headers);
58
+ // Store the new token
59
+ this.token = (_c = (_b = (_a = session === null || session === void 0 ? void 0 : session.token) === null || _a === void 0 ? void 0 : _a.payload) === null || _b === void 0 ? void 0 : _b.jwt) !== null && _c !== void 0 ? _c : "";
60
+ return {
61
+ approved: true,
62
+ payload: { headers: { "Authorization": this.token } }
63
+ };
64
+ }
65
+ // If headers are not available, return an error
66
+ return {
67
+ approved: false,
68
+ rejection: {
69
+ code: 500,
70
+ payload: { status: 'Error', message: 'Public API is not available' }
71
+ }
72
+ };
73
+ }
74
+ catch (err) {
75
+ // Handle any errors that occur during token creation
76
+ return {
77
+ approved: false,
78
+ rejection: {
79
+ code: 401,
80
+ payload: (_e = (_d = err === null || err === void 0 ? void 0 : err.response) === null || _d === void 0 ? void 0 : _d.data) !== null && _e !== void 0 ? _e : err
81
+ }
82
+ };
83
+ }
84
+ });
85
+ }
86
+ // Sign the request with HMAC, if successful return headers else return undefined
87
+ sign(params) {
88
+ return __awaiter(this, void 0, void 0, function* () {
89
+ const { method, path } = params;
90
+ let nonce = Date.now();
91
+ let message = `${nonce}${method}${path}${this.config.name ? JSON.stringify(this.config.name) : ""}`;
92
+ const credentials = yield this.getServiceCredentials();
93
+ if (credentials) {
94
+ const hash = (0, crypto_js_1.HmacSHA256)(message, credentials.apiSecret);
95
+ let signature = crypto_js_1.enc.Hex.stringify(hash);
96
+ return {
97
+ headers: {
98
+ Authorization: `${credentials.apiKey}:${nonce}:${signature}`,
99
+ },
100
+ };
101
+ }
102
+ return undefined;
103
+ });
104
+ }
105
+ // Get service credentials
106
+ getServiceCredentials() {
107
+ return __awaiter(this, void 0, void 0, function* () {
108
+ try {
109
+ const credentials = yield RequestAxiosCall_1.RequestAxiosCall.get(`${this.sessionServiceUrl}/service/credentials?service=${this.config.name}`, { headers: { referer: this.config.url } });
110
+ return credentials.payload;
111
+ }
112
+ catch (error) {
113
+ return undefined;
114
+ }
115
+ });
116
+ }
117
+ }
118
+ exports.ServiceSessionChecker = ServiceSessionChecker;
119
+ //# sourceMappingURL=ServiceSessionChecker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServiceSessionChecker.js","sourceRoot":"","sources":["../../../src/api/check/ServiceSessionChecker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ import { ApiKeyPair, ExternalApiSigner } from '../ExternalApiSigner';
2
+ import { AxiosRequestConfig } from 'axios';
3
+ export declare enum KycStatus {
4
+ APPROVED = "APPROVED",
5
+ REJECTED = "REJECTED"
6
+ }
7
+ export interface IThirdPartyDetails {
8
+ id?: number | string;
9
+ thirdPartyId?: string;
10
+ counterpartyId?: number;
11
+ document?: string;
12
+ details?: any;
13
+ limit?: number;
14
+ offset?: number;
15
+ count?: boolean;
16
+ }
17
+ export interface ICounterpartyDetails {
18
+ id?: number | string;
19
+ counterpartyId?: number;
20
+ sourceId?: number;
21
+ statusId?: number;
22
+ typeId?: number;
23
+ registerDate?: number;
24
+ approvalDate?: number;
25
+ details?: any;
26
+ limit?: number;
27
+ offset?: number;
28
+ count?: boolean;
29
+ config?: AxiosRequestConfig;
30
+ }
31
+ export interface IAccounts {
32
+ accountId?: number;
33
+ statusId?: number;
34
+ thirdPartyId?: number;
35
+ counterpartyId?: number;
36
+ typeId?: number;
37
+ date?: number;
38
+ bank?: string;
39
+ backAccount?: string;
40
+ updatedAt?: string;
41
+ createdAt?: string;
42
+ config?: AxiosRequestConfig;
43
+ }
44
+ export interface IAccountsDetails {
45
+ id?: number | string;
46
+ accountId?: number;
47
+ statusId?: number;
48
+ thirdPartyId?: number;
49
+ counterpartyId?: number;
50
+ typeId?: number;
51
+ backAccountType?: string;
52
+ date?: number;
53
+ bank?: string;
54
+ backAccount?: string;
55
+ values?: IAccounts[];
56
+ updatedAt?: string;
57
+ createdAt?: string;
58
+ limit?: number;
59
+ offset?: number;
60
+ count?: boolean;
61
+ config?: AxiosRequestConfig;
62
+ }
63
+ export declare class KycApiManager extends ExternalApiSigner {
64
+ private url;
65
+ constructor(keys: ApiKeyPair, url: string);
66
+ getCounterparties(status: KycStatus): Promise<unknown>;
67
+ getAllCounterparties(details: ICounterpartyDetails): Promise<unknown>;
68
+ countAllCounterparties(details: ICounterpartyDetails): Promise<unknown>;
69
+ getCounterpartyById(id: number): Promise<any>;
70
+ private buildRequestUrlForCounterparties;
71
+ getAllThirdParties(details: IThirdPartyDetails): Promise<unknown>;
72
+ countAllThirdParties(details: IThirdPartyDetails): Promise<unknown>;
73
+ getThirdPartyById(id: number): Promise<any>;
74
+ createThirdParty(details: IThirdPartyDetails): Promise<unknown>;
75
+ updateThirdParty(details: IThirdPartyDetails): Promise<unknown>;
76
+ private buildRequestUrlForThirdParties;
77
+ getAllAccounts(details: IAccountsDetails): Promise<unknown>;
78
+ countAllAccounts(details: IAccountsDetails): Promise<unknown>;
79
+ getAccountById(id: number): Promise<any>;
80
+ createAccount(details: IAccountsDetails): Promise<unknown>;
81
+ createAccounts(details: IAccountsDetails): Promise<unknown>;
82
+ updateAccount(details: IAccountsDetails): Promise<unknown>;
83
+ private buildRequestUrlForAccounts;
84
+ }
@@ -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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.KycApiManager = exports.KycStatus = void 0;
13
+ const ExternalApiSigner_1 = require("../ExternalApiSigner");
14
+ const APIRequest_1 = require("../../APIRequest");
15
+ const RequestAxiosCall_1 = require("../../request/RequestAxiosCall");
16
+ var KycStatus;
17
+ (function (KycStatus) {
18
+ KycStatus["APPROVED"] = "APPROVED";
19
+ KycStatus["REJECTED"] = "REJECTED";
20
+ })(KycStatus || (exports.KycStatus = KycStatus = {}));
21
+ class KycApiManager extends ExternalApiSigner_1.ExternalApiSigner {
22
+ constructor(keys, url) {
23
+ super('cetus', keys);
24
+ this.url = url;
25
+ }
26
+ getCounterparties(status) {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ let signature = this.sign(APIRequest_1.RequestMethod.GET, '/v1/kyc/counterparties');
29
+ return (yield RequestAxiosCall_1.RequestAxiosCall.get(`${this.url}/v1/kyc/counterparties?status=${status}`, signature));
30
+ });
31
+ }
32
+ getAllCounterparties(details) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ let url = this.buildRequestUrlForCounterparties(`/v1/kyc/counterparties`, details);
35
+ let signature = this.sign(APIRequest_1.RequestMethod.GET, url);
36
+ return (yield RequestAxiosCall_1.RequestAxiosCall.get(`${this.url}${url}`, signature));
37
+ });
38
+ }
39
+ countAllCounterparties(details) {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ let url = this.buildRequestUrlForThirdParties(`/v1/kyc/counterparties`, Object.assign(Object.assign({}, details), { count: true }));
42
+ let signature = this.sign(APIRequest_1.RequestMethod.GET, url);
43
+ return (yield RequestAxiosCall_1.RequestAxiosCall.get(`${this.url}${url}`, signature));
44
+ });
45
+ }
46
+ getCounterpartyById(id) {
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ var _a;
49
+ let signature = this.sign(APIRequest_1.RequestMethod.GET, `/v1/kyc/counterparties?id=${id}`);
50
+ let response = yield RequestAxiosCall_1.RequestAxiosCall.get(`${this.url}/v1/kyc/counterparties?id=${id}`, signature);
51
+ if (((_a = response.result) === null || _a === void 0 ? void 0 : _a.length) > 0)
52
+ return response.result[0];
53
+ return undefined;
54
+ });
55
+ }
56
+ buildRequestUrlForCounterparties(url, details) {
57
+ let suffix = `${details.id ? `&id=${details.id}` : ""}${details.sourceId ? `&sourceId=${details.sourceId}` : ""}${details.statusId ? `&statusId=${details.statusId}` : ""}${details.typeId ? `&typeId=${details.typeId}` : ""}${details.limit ? `&limit=${details.limit}` : ""}${details.offset ? `&offset=${details.offset}` : ""}${details.count ? `&count=${details.count}` : ""}`;
58
+ return `${url}?${suffix.substring(1)}`;
59
+ }
60
+ getAllThirdParties(details) {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ let url = this.buildRequestUrlForThirdParties(`/v1/kyc/third-parties`, details);
63
+ let signature = this.sign(APIRequest_1.RequestMethod.GET, url);
64
+ return (yield RequestAxiosCall_1.RequestAxiosCall.get(`${this.url}${url}`, signature));
65
+ });
66
+ }
67
+ countAllThirdParties(details) {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ let url = this.buildRequestUrlForThirdParties(`/v1/kyc/third-parties`, Object.assign(Object.assign({}, details), { count: true }));
70
+ let signature = this.sign(APIRequest_1.RequestMethod.GET, url);
71
+ return (yield RequestAxiosCall_1.RequestAxiosCall.get(`${this.url}${url}`, signature));
72
+ });
73
+ }
74
+ getThirdPartyById(id) {
75
+ return __awaiter(this, void 0, void 0, function* () {
76
+ var _a;
77
+ let signature = this.sign(APIRequest_1.RequestMethod.GET, `/v1/kyc/third-parties?id=${id}`);
78
+ let response = yield RequestAxiosCall_1.RequestAxiosCall.get(`${this.url}/v1/kyc/third-parties?id=${id}`, signature);
79
+ if (((_a = response.result) === null || _a === void 0 ? void 0 : _a.length) > 0)
80
+ return response.result[0];
81
+ return undefined;
82
+ });
83
+ }
84
+ createThirdParty(details) {
85
+ return __awaiter(this, void 0, void 0, function* () {
86
+ let signature = this.sign(APIRequest_1.RequestMethod.POST, `/v1/kyc/third-parties`, details);
87
+ return (yield RequestAxiosCall_1.RequestAxiosCall.post(`${this.url}/v1/kyc/third-parties`, details, signature));
88
+ });
89
+ }
90
+ updateThirdParty(details) {
91
+ return __awaiter(this, void 0, void 0, function* () {
92
+ let signature = this.sign(APIRequest_1.RequestMethod.PUT, `/v1/kyc/third-parties/${details.thirdPartyId}`, details);
93
+ return (yield RequestAxiosCall_1.RequestAxiosCall.put(`${this.url}/v1/kyc/third-parties/${details.thirdPartyId}`, details, signature));
94
+ });
95
+ }
96
+ buildRequestUrlForThirdParties(url, details) {
97
+ let suffix = `${details.id ? `&id=${details.id}` : ""}${details.counterpartyId ? `&counterpartyId=${details.counterpartyId}` : ""}${details.document ? `&document=${details.document}` : ""}${details.limit ? `&limit=${details.limit}` : ""}${details.offset ? `&offset=${details.offset}` : ""}${details.count ? `&count=${details.count}` : ""}`;
98
+ return `${url}?${suffix.substring(1)}`;
99
+ }
100
+ getAllAccounts(details) {
101
+ return __awaiter(this, void 0, void 0, function* () {
102
+ let url = this.buildRequestUrlForAccounts(`/v1/kyc/accounts`, details);
103
+ let signature = this.sign(APIRequest_1.RequestMethod.GET, url);
104
+ return (yield RequestAxiosCall_1.RequestAxiosCall.get(`${this.url}${url}`, signature));
105
+ });
106
+ }
107
+ countAllAccounts(details) {
108
+ return __awaiter(this, void 0, void 0, function* () {
109
+ let url = this.buildRequestUrlForAccounts(`/v1/kyc/accounts`, Object.assign(Object.assign({}, details), { count: true }));
110
+ let signature = this.sign(APIRequest_1.RequestMethod.GET, url);
111
+ return (yield RequestAxiosCall_1.RequestAxiosCall.get(`${this.url}${url}`, signature));
112
+ });
113
+ }
114
+ getAccountById(id) {
115
+ return __awaiter(this, void 0, void 0, function* () {
116
+ var _a;
117
+ let signature = this.sign(APIRequest_1.RequestMethod.GET, `/v1/kyc/accounts?id=${id}`);
118
+ let response = yield RequestAxiosCall_1.RequestAxiosCall.get(`${this.url}/v1/kyc/accounts?id=${id}`, signature);
119
+ if (((_a = response.result) === null || _a === void 0 ? void 0 : _a.length) > 0)
120
+ return response.result[0];
121
+ return undefined;
122
+ });
123
+ }
124
+ createAccount(details) {
125
+ return __awaiter(this, void 0, void 0, function* () {
126
+ let signature = this.sign(APIRequest_1.RequestMethod.POST, `/v1/kyc/accounts`, details);
127
+ return (yield RequestAxiosCall_1.RequestAxiosCall.post(`${this.url}/v1/kyc/accounts`, details, signature));
128
+ });
129
+ }
130
+ createAccounts(details) {
131
+ return __awaiter(this, void 0, void 0, function* () {
132
+ let signature = this.sign(APIRequest_1.RequestMethod.POST, `/v1/kyc/accounts`, { values: details.values });
133
+ return (yield RequestAxiosCall_1.RequestAxiosCall.post(`${this.url}/v1/kyc/accounts`, { values: details.values }, signature));
134
+ });
135
+ }
136
+ updateAccount(details) {
137
+ return __awaiter(this, void 0, void 0, function* () {
138
+ let signature = this.sign(APIRequest_1.RequestMethod.PUT, `/v1/kyc/accounts/${details.accountId}`, details);
139
+ return (yield RequestAxiosCall_1.RequestAxiosCall.put(`${this.url}/v1/kyc/accounts/${details.accountId}`, details, signature));
140
+ });
141
+ }
142
+ buildRequestUrlForAccounts(url, details) {
143
+ let suffix = `${details.id ? `&id=${details.id}` : ""}${details.counterpartyId ? `&counterpartyId=${details.counterpartyId}` : ""}${details.statusId ? `&statusId=${details.statusId}` : ""}${details.thirdPartyId ? `&thirdPartyId=${details.thirdPartyId}` : ""}${details.typeId ? `&typeId=${details.typeId}` : ""}${details.bank ? `&bank=${details.bank}` : ""}${details.backAccount ? `&backAccount=${details.backAccount}` : ""}${details.limit ? `&limit=${details.limit}` : ""}${details.offset ? `&offset=${details.offset}` : ""}${details.count ? `&count=${details.count}` : ""}`;
144
+ return `${url}?${suffix.substring(1)}`;
145
+ }
146
+ }
147
+ exports.KycApiManager = KycApiManager;
148
+ //# sourceMappingURL=KycApiManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KycApiManager.js","sourceRoot":"","sources":["../../../../src/api/external/kyc/KycApiManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { CrudServiceManager, StandardIdRequestDefinition } from "../CrudServiceManager";
2
+ import { AxiosRequestConfig } from "axios";
3
+ export interface IAccount {
4
+ accountId?: number;
5
+ account?: string;
6
+ intermediaryId?: number;
7
+ details?: any;
8
+ updatedAt?: string;
9
+ createdAt?: string;
10
+ config?: AxiosRequestConfig;
11
+ }
12
+ export interface IAccountSearchDetails {
13
+ accountId?: number;
14
+ account?: string;
15
+ intermediaryId?: number;
16
+ details?: any;
17
+ values?: IAccount[];
18
+ limit?: number;
19
+ offset?: number;
20
+ config?: AxiosRequestConfig;
21
+ }
22
+ export declare class AccountManager extends CrudServiceManager<IAccountSearchDetails, IAccount> {
23
+ private url;
24
+ constructor(url: string);
25
+ find(details: IAccountSearchDetails): Promise<IAccount | undefined>;
26
+ count(details: IAccountSearchDetails): Promise<{
27
+ result: number;
28
+ }>;
29
+ findAll(details: IAccountSearchDetails): Promise<IAccount[] | undefined>;
30
+ private buildRequestUrl;
31
+ findById(id: StandardIdRequestDefinition): Promise<IAccount | undefined>;
32
+ create(details: IAccountSearchDetails): Promise<IAccount | undefined>;
33
+ createMany(details: IAccountSearchDetails): Promise<IAccount[] | undefined>;
34
+ modify(account: IAccount): Promise<any>;
35
+ destroy(account: IAccount): Promise<any>;
36
+ }
@@ -0,0 +1,82 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AccountManager = void 0;
13
+ const CrudServiceManager_1 = require("../CrudServiceManager");
14
+ class AccountManager extends CrudServiceManager_1.CrudServiceManager {
15
+ constructor(url) {
16
+ super();
17
+ this.url = url;
18
+ }
19
+ find(details) {
20
+ return __awaiter(this, void 0, void 0, function* () {
21
+ return this.sendFinding(`${this.url}/accounts?account=${details.account}&intermediaryId=${details.intermediaryId}`, details.config);
22
+ });
23
+ }
24
+ count(details) {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ var _a;
27
+ let url = this.buildRequestUrl(`${this.url}/accounts`, details);
28
+ return (_a = (yield this.sendCounting(url, details.config))) !== null && _a !== void 0 ? _a : { result: 0 };
29
+ });
30
+ }
31
+ findAll(details) {
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ var _a;
34
+ let strategies = [];
35
+ let url = this.buildRequestUrl(`${this.url}/accounts`, details);
36
+ if (details.limit) {
37
+ strategies = (_a = (yield this.sendAllFinding(`${url}${url.indexOf('?') !== -1 ? '&' : '?'}limit=${details.limit}&offset=${details.offset}`, details.config))) !== null && _a !== void 0 ? _a : [];
38
+ }
39
+ else {
40
+ let limit = 5000, offset = 0, isEmpty = false;
41
+ do {
42
+ let values = yield this.sendAllFinding(`${url}${url.indexOf('?') !== -1 ? '&' : '?'}limit=${limit}&offset=${offset}`, details.config);
43
+ if (values)
44
+ strategies = strategies.concat(values);
45
+ isEmpty = values == undefined || values.length == 0;
46
+ offset += limit;
47
+ } while (!isEmpty);
48
+ }
49
+ return strategies;
50
+ });
51
+ }
52
+ buildRequestUrl(url, details) {
53
+ let suffix = `${details.account ? `&account=${details.account}` : ""}${details.intermediaryId ? `&intermediaryId=${details.intermediaryId}` : ""}`;
54
+ return `${url}?${suffix.substring(1)}`;
55
+ }
56
+ findById(id) {
57
+ return this.sendFinding(`${this.url}/accounts?id=${id.id}`, id.config);
58
+ }
59
+ create(details) {
60
+ return this.sendCreation(`${this.url}/accounts`, {
61
+ account: details.account,
62
+ intermediaryId: details.intermediaryId,
63
+ details: details.details
64
+ }, details.config);
65
+ }
66
+ createMany(details) {
67
+ var _a;
68
+ return this.sendCreationMany(`${this.url}/accounts`, (_a = details.values) !== null && _a !== void 0 ? _a : [], details.config);
69
+ }
70
+ modify(account) {
71
+ return this.sendModification(`${this.url}/accounts/${account.accountId}`, {
72
+ account: account.account,
73
+ intermediaryId: account.intermediaryId,
74
+ details: account.details
75
+ }, account.config);
76
+ }
77
+ destroy(account) {
78
+ return this.sendDestruction(`${this.url}/accounts/${account.accountId}`, account.config);
79
+ }
80
+ }
81
+ exports.AccountManager = AccountManager;
82
+ //# sourceMappingURL=AccountManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountManager.js","sourceRoot":"","sources":["../../../../../src/api/request/crud/cetus/AccountManager.ts"],"names":[],"mappings":"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"}