@traxionpay/cbsmiddleware 0.0.1
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/.prettierrc +4 -0
- package/Dockerfile +26 -0
- package/README.md +109 -0
- package/dist/app.module.d.ts +3 -0
- package/dist/app.module.d.ts.map +1 -0
- package/dist/app.module.js +44 -0
- package/dist/app.module.js.map +1 -0
- package/dist/auth/apikey.guard.d.ts +9 -0
- package/dist/auth/apikey.guard.d.ts.map +1 -0
- package/dist/auth/apikey.guard.js +86 -0
- package/dist/auth/apikey.guard.js.map +1 -0
- package/dist/auth/auth.controller.d.ts +10 -0
- package/dist/auth/auth.controller.d.ts.map +1 -0
- package/dist/auth/auth.controller.js +65 -0
- package/dist/auth/auth.controller.js.map +1 -0
- package/dist/auth/auth.interface.d.ts +8 -0
- package/dist/auth/auth.interface.d.ts.map +1 -0
- package/dist/auth/auth.interface.js +3 -0
- package/dist/auth/auth.interface.js.map +1 -0
- package/dist/auth/auth.module.d.ts +6 -0
- package/dist/auth/auth.module.d.ts.map +1 -0
- package/dist/auth/auth.module.js +81 -0
- package/dist/auth/auth.module.js.map +1 -0
- package/dist/auth/constant.d.ts +2 -0
- package/dist/auth/constant.d.ts.map +1 -0
- package/dist/auth/constant.js +5 -0
- package/dist/auth/constant.js.map +1 -0
- package/dist/auth/jwt-constant.d.ts +8 -0
- package/dist/auth/jwt-constant.d.ts.map +1 -0
- package/dist/auth/jwt-constant.js +60 -0
- package/dist/auth/jwt-constant.js.map +1 -0
- package/dist/auth/jwt-guard.d.ts +5 -0
- package/dist/auth/jwt-guard.d.ts.map +1 -0
- package/dist/auth/jwt-guard.js +18 -0
- package/dist/auth/jwt-guard.js.map +1 -0
- package/dist/auth/jwt-strategy.d.ts +16 -0
- package/dist/auth/jwt-strategy.d.ts.map +1 -0
- package/dist/auth/jwt-strategy.js +59 -0
- package/dist/auth/jwt-strategy.js.map +1 -0
- package/dist/auth/services/auth.service.d.ts +14 -0
- package/dist/auth/services/auth.service.d.ts.map +1 -0
- package/dist/auth/services/auth.service.js +56 -0
- package/dist/auth/services/auth.service.js.map +1 -0
- package/dist/auth/services/encryption.service.d.ts +11 -0
- package/dist/auth/services/encryption.service.d.ts.map +1 -0
- package/dist/auth/services/encryption.service.js +49 -0
- package/dist/auth/services/encryption.service.js.map +1 -0
- package/dist/auth.config.d.ts +29 -0
- package/dist/auth.config.d.ts.map +1 -0
- package/dist/auth.config.js +71 -0
- package/dist/auth.config.js.map +1 -0
- package/dist/banking/banking.controller.d.ts +18 -0
- package/dist/banking/banking.controller.d.ts.map +1 -0
- package/dist/banking/banking.controller.js +146 -0
- package/dist/banking/banking.controller.js.map +1 -0
- package/dist/banking/banking.module.d.ts +6 -0
- package/dist/banking/banking.module.d.ts.map +1 -0
- package/dist/banking/banking.module.js +90 -0
- package/dist/banking/banking.module.js.map +1 -0
- package/dist/banking/dto/account-transfer.dto.d.ts +17 -0
- package/dist/banking/dto/account-transfer.dto.d.ts.map +1 -0
- package/dist/banking/dto/account-transfer.dto.js +101 -0
- package/dist/banking/dto/account-transfer.dto.js.map +1 -0
- package/dist/banking/dto/account.dto.d.ts +19 -0
- package/dist/banking/dto/account.dto.d.ts.map +1 -0
- package/dist/banking/dto/account.dto.js +104 -0
- package/dist/banking/dto/account.dto.js.map +1 -0
- package/dist/banking/dto/fetch-bank-balance.dto.d.ts +12 -0
- package/dist/banking/dto/fetch-bank-balance.dto.d.ts.map +1 -0
- package/dist/banking/dto/fetch-bank-balance.dto.js +71 -0
- package/dist/banking/dto/fetch-bank-balance.dto.js.map +1 -0
- package/dist/banking/dto/transaction-history.dto.d.ts +15 -0
- package/dist/banking/dto/transaction-history.dto.d.ts.map +1 -0
- package/dist/banking/dto/transaction-history.dto.js +89 -0
- package/dist/banking/dto/transaction-history.dto.js.map +1 -0
- package/dist/banking/factory/bank-strategy.factory.d.ts +9 -0
- package/dist/banking/factory/bank-strategy.factory.d.ts.map +1 -0
- package/dist/banking/factory/bank-strategy.factory.js +48 -0
- package/dist/banking/factory/bank-strategy.factory.js.map +1 -0
- package/dist/banking/interfaces/bank-config.interface.d.ts +22 -0
- package/dist/banking/interfaces/bank-config.interface.d.ts.map +1 -0
- package/dist/banking/interfaces/bank-config.interface.js +3 -0
- package/dist/banking/interfaces/bank-config.interface.js.map +1 -0
- package/dist/banking/interfaces/bank-service.interface.d.ts +19 -0
- package/dist/banking/interfaces/bank-service.interface.d.ts.map +1 -0
- package/dist/banking/interfaces/bank-service.interface.js +3 -0
- package/dist/banking/interfaces/bank-service.interface.js.map +1 -0
- package/dist/banking/services/ASPAC.service.d.ts +25 -0
- package/dist/banking/services/ASPAC.service.d.ts.map +1 -0
- package/dist/banking/services/ASPAC.service.js +498 -0
- package/dist/banking/services/ASPAC.service.js.map +1 -0
- package/dist/banking/services/BankGateway.service.d.ts +18 -0
- package/dist/banking/services/BankGateway.service.d.ts.map +1 -0
- package/dist/banking/services/BankGateway.service.js +71 -0
- package/dist/banking/services/BankGateway.service.js.map +1 -0
- package/dist/banking/services/MBWIN.service.d.ts +25 -0
- package/dist/banking/services/MBWIN.service.d.ts.map +1 -0
- package/dist/banking/services/MBWIN.service.js +655 -0
- package/dist/banking/services/MBWIN.service.js.map +1 -0
- package/dist/banking/services/WelcomeBank.service.d.ts +29 -0
- package/dist/banking/services/WelcomeBank.service.d.ts.map +1 -0
- package/dist/banking/services/WelcomeBank.service.js +840 -0
- package/dist/banking/services/WelcomeBank.service.js.map +1 -0
- package/dist/banking/services/sms.service.d.ts +10 -0
- package/dist/banking/services/sms.service.d.ts.map +1 -0
- package/dist/banking/services/sms.service.js +97 -0
- package/dist/banking/services/sms.service.js.map +1 -0
- package/dist/banking/tokens/bank-service.tokens.d.ts +5 -0
- package/dist/banking/tokens/bank-service.tokens.d.ts.map +1 -0
- package/dist/banking/tokens/bank-service.tokens.js +8 -0
- package/dist/banking/tokens/bank-service.tokens.js.map +1 -0
- package/dist/banking/types.d.ts +10 -0
- package/dist/banking/types.d.ts.map +1 -0
- package/dist/banking/types.js +3 -0
- package/dist/banking/types.js.map +1 -0
- package/dist/decorators/response_message.decorator.d.ts +2 -0
- package/dist/decorators/response_message.decorator.d.ts.map +1 -0
- package/dist/decorators/response_message.decorator.js +7 -0
- package/dist/decorators/response_message.decorator.js.map +1 -0
- package/dist/helpers/axios-error.helper.d.ts +6 -0
- package/dist/helpers/axios-error.helper.d.ts.map +1 -0
- package/dist/helpers/axios-error.helper.js +78 -0
- package/dist/helpers/axios-error.helper.js.map +1 -0
- package/dist/helpers/response-format.helper.d.ts +4 -0
- package/dist/helpers/response-format.helper.d.ts.map +1 -0
- package/dist/helpers/response-format.helper.js +15 -0
- package/dist/helpers/response-format.helper.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/interceptors/response.interceptor.d.ts +16 -0
- package/dist/interceptors/response.interceptor.d.ts.map +1 -0
- package/dist/interceptors/response.interceptor.js +80 -0
- package/dist/interceptors/response.interceptor.js.map +1 -0
- package/dist/logger/logger-interceptor.d.ts +14 -0
- package/dist/logger/logger-interceptor.d.ts.map +1 -0
- package/dist/logger/logger-interceptor.js +60 -0
- package/dist/logger/logger-interceptor.js.map +1 -0
- package/dist/logger/logger-option.d.ts +6 -0
- package/dist/logger/logger-option.d.ts.map +1 -0
- package/dist/logger/logger-option.js +103 -0
- package/dist/logger/logger-option.js.map +1 -0
- package/dist/logger/logger.config.d.ts +3 -0
- package/dist/logger/logger.config.d.ts.map +1 -0
- package/dist/logger/logger.config.js +31 -0
- package/dist/logger/logger.config.js.map +1 -0
- package/dist/logger/logger.module.d.ts +3 -0
- package/dist/logger/logger.module.d.ts.map +1 -0
- package/dist/logger/logger.module.js +76 -0
- package/dist/logger/logger.module.js.map +1 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +13 -0
- package/dist/main.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/docker-compose.yml +14 -0
- package/ecosystem.config.js +35 -0
- package/eslint.config.mjs +34 -0
- package/nest-cli.json +8 -0
- package/package.json +102 -0
- package/src/app.module.ts +33 -0
- package/src/auth/apikey.guard.ts +42 -0
- package/src/auth/auth.controller.ts +41 -0
- package/src/auth/auth.interface.ts +7 -0
- package/src/auth/auth.module.ts +125 -0
- package/src/auth/constant.ts +1 -0
- package/src/auth/jwt-constant.ts +31 -0
- package/src/auth/jwt-guard.ts +5 -0
- package/src/auth/jwt-strategy.ts +43 -0
- package/src/auth/services/auth.service.ts +33 -0
- package/src/auth/services/encryption.service.ts +35 -0
- package/src/auth.config.ts +42 -0
- package/src/banking/banking.controller.ts +142 -0
- package/src/banking/banking.module.ts +142 -0
- package/src/banking/dto/account-transfer.dto.ts +66 -0
- package/src/banking/dto/account.dto.ts +70 -0
- package/src/banking/dto/fetch-bank-balance.dto.ts +46 -0
- package/src/banking/dto/transaction-history.dto.ts +58 -0
- package/src/banking/factory/bank-strategy.factory.ts +25 -0
- package/src/banking/interfaces/bank-config.interface.ts +25 -0
- package/src/banking/interfaces/bank-service.interface.ts +164 -0
- package/src/banking/services/ASPAC.service.ts +574 -0
- package/src/banking/services/BankGateway.service.ts +64 -0
- package/src/banking/services/MBWIN.service.ts +779 -0
- package/src/banking/services/WelcomeBank.service.ts +990 -0
- package/src/banking/services/sms.service.ts +50 -0
- package/src/banking/tokens/bank-service.tokens.ts +4 -0
- package/src/banking/types.ts +10 -0
- package/src/decorators/response_message.decorator.ts +4 -0
- package/src/helpers/axios-error.helper.ts +63 -0
- package/src/helpers/response-format.helper.ts +15 -0
- package/src/index.ts +15 -0
- package/src/interceptors/response.interceptor.ts +53 -0
- package/src/logger/logger-interceptor.ts +55 -0
- package/src/logger/logger-option.ts +119 -0
- package/src/logger/logger.config.ts +31 -0
- package/src/logger/logger.module.ts +31 -0
- package/src/main.ts +10 -0
- package/src/types/pino-daily-rotate-file.d.ts +31 -0
- package/tsconfig.build.json +11 -0
- package/tsconfig.build.tsbuildinfo +1 -0
- package/tsconfig.json +22 -0
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { FetchBankBalanceDto } from '../dto/fetch-bank-balance.dto';
|
|
2
|
+
import { AccountTransferDto } from '../dto/account-transfer.dto';
|
|
3
|
+
import { AccountDto, ValidateOtp } from '../dto/account.dto';
|
|
4
|
+
import { TransactionHistoryDto } from '../dto/transaction-history.dto';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Interface defining operations related to bank integration and user account processing.
|
|
8
|
+
*
|
|
9
|
+
* Implementing this interface allows support for multiple bank providers (e.g., UBA, Zenith)
|
|
10
|
+
* and standardizes how balance transactions, OTPs, token management, and transaction history
|
|
11
|
+
* are handled in the application.
|
|
12
|
+
*
|
|
13
|
+
* @export
|
|
14
|
+
* @interface BankService
|
|
15
|
+
*/
|
|
16
|
+
export interface BankService {
|
|
17
|
+
/**
|
|
18
|
+
* Sends a request to a bank's API to process a balance transaction for a specific account.
|
|
19
|
+
*
|
|
20
|
+
* @param {FetchBalanceDto} fetchBalanceDto - Data Transfer Object containing account number and bank code.
|
|
21
|
+
* @returns {Promise<any>} A promise resolving with the bank's response.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* const dto = {
|
|
25
|
+
* accountNumber: '1234567890',
|
|
26
|
+
* bankCode: '001',
|
|
27
|
+
* userId: 42
|
|
28
|
+
* };
|
|
29
|
+
* const response = await bankService.processBalanceTransaction(dto);
|
|
30
|
+
* console.log(response.status); // 'success'
|
|
31
|
+
*/
|
|
32
|
+
processBalanceTransaction(
|
|
33
|
+
fetchBalanceDto: FetchBankBalanceDto
|
|
34
|
+
): Promise<any>;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Validates and retrieves user account information using an authorization token.
|
|
38
|
+
*
|
|
39
|
+
* @param {string} token - A secure token generated from `generateToken()`.
|
|
40
|
+
* @param {number} userid - The ID of the user whose account details are being requested.
|
|
41
|
+
* @returns {*} The user's account data, such as mobile number or account info.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* const accountDetails = bankService.findAccountDetailsRaw('jwt-token-123', 101);
|
|
45
|
+
* console.log(accountDetails.mobile); // '08012345678'
|
|
46
|
+
*/
|
|
47
|
+
findAccountDetailsRaw(token: string, userid: number): any;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Generates and sends a One-Time Password (OTP) to the specified mobile number.
|
|
51
|
+
*
|
|
52
|
+
* @param {string} mobile - The user's mobile phone number.
|
|
53
|
+
* @param {string} acc - The user's bank account number.
|
|
54
|
+
* @param {string} bankid - The identifier for the target bank.
|
|
55
|
+
* @returns {string} The generated OTP code.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* const otp = bankService.generateOtp('08012345678', '1234567890', 'UBA');
|
|
59
|
+
* console.log(otp); // '395281'
|
|
60
|
+
*/
|
|
61
|
+
generateOtp(mobile: string, acc: string, bankid: string): string;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Validates an OTP against a reference key or session.
|
|
65
|
+
*
|
|
66
|
+
* @param {string} reference - A unique reference associated with the OTP session.
|
|
67
|
+
* @param {string} otp - The OTP value submitted by the user.
|
|
68
|
+
* @returns {boolean} Returns true if the OTP is valid; otherwise, false.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* const isValid = bankService.validateOtp('otp-session-id-789', '395281');
|
|
72
|
+
* console.log(isValid); // true
|
|
73
|
+
*/
|
|
74
|
+
validateOtp(
|
|
75
|
+
validateOtp: ValidateOtp
|
|
76
|
+
): any;
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
linkAccount(
|
|
80
|
+
accountDto: AccountDto
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Generates a random numeric OTP of a given length.
|
|
86
|
+
*
|
|
87
|
+
* @param {number} length - Desired length of the OTP (e.g., 4, 6).
|
|
88
|
+
* @returns {string} A string of random digits.
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* const otp = bankService.generateRandomOtp(6);
|
|
92
|
+
* console.log(otp); // '928173'
|
|
93
|
+
*/
|
|
94
|
+
generateRandomOtp(length: number): string;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Generates a token for secure, temporary access or user session tracking.
|
|
98
|
+
*
|
|
99
|
+
* @returns {Promise<any>} A promise resolving to the generated token (e.g., JWT).
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* const token = await bankService.generateToken();
|
|
103
|
+
* console.log(token); // 'eyJhbGciOiJI...'
|
|
104
|
+
*/
|
|
105
|
+
generateToken(): Promise<any>;
|
|
106
|
+
|
|
107
|
+
refreshToken(refreshToken: string): Promise<any>;
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Fetches a user's transaction history from a specified date range.
|
|
111
|
+
*
|
|
112
|
+
* @param {string} token - A valid authentication token.
|
|
113
|
+
* @param {number} userid - The ID of the user.
|
|
114
|
+
* @param {string} dateFrom - Start date in `YYYY-MM-DD` format.
|
|
115
|
+
* @param {string} dateTo - End date in `YYYY-MM-DD` format.
|
|
116
|
+
* @returns {*} Transaction data (could be an array or an object, depending on implementation).
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* const history = bankService.getTransactionHistory(
|
|
120
|
+
* 'jwt-token-123',
|
|
121
|
+
* 101,
|
|
122
|
+
* '2024-01-01',
|
|
123
|
+
* '2024-01-31'
|
|
124
|
+
* );
|
|
125
|
+
* console.log(history.length); // 12 transactions
|
|
126
|
+
*/
|
|
127
|
+
getTransactionHistory(
|
|
128
|
+
transactionHistoryDto: TransactionHistoryDto
|
|
129
|
+
): any;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Initiates a fund transfer of a specified amount between two user accounts.
|
|
133
|
+
*
|
|
134
|
+
* This method performs the necessary balance validation, debits the sender's account,
|
|
135
|
+
* credits the recipient's account, and records the transaction securely.
|
|
136
|
+
*
|
|
137
|
+
* @param {string} token - A valid authentication token for the user/session.
|
|
138
|
+
* @param {number} useridFrom - The ID of the user initiating the transfer (sender).
|
|
139
|
+
* @param {number} useridTo - The ID of the recipient user (receiver).
|
|
140
|
+
* @param {number} amount - The amount to be transferred.
|
|
141
|
+
* @returns {*} A result indicating the status of the transfer (e.g., success, error details).
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* const result = await bankService.accountTransfer('jwt-token-123', 101, 205, 5000);
|
|
145
|
+
* console.log(result.status); // 'success'
|
|
146
|
+
*/
|
|
147
|
+
accountTransfer(
|
|
148
|
+
token: string,
|
|
149
|
+
useridFrom: string,
|
|
150
|
+
useridTo: string,
|
|
151
|
+
amount: number
|
|
152
|
+
): any;
|
|
153
|
+
|
|
154
|
+
accountCashIn(
|
|
155
|
+
accountTransaferDto: AccountTransferDto
|
|
156
|
+
): any;
|
|
157
|
+
|
|
158
|
+
accountDeposit(
|
|
159
|
+
accountTransaferDto: AccountTransferDto
|
|
160
|
+
): any;
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
}
|