@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.
Files changed (203) hide show
  1. package/.prettierrc +4 -0
  2. package/Dockerfile +26 -0
  3. package/README.md +109 -0
  4. package/dist/app.module.d.ts +3 -0
  5. package/dist/app.module.d.ts.map +1 -0
  6. package/dist/app.module.js +44 -0
  7. package/dist/app.module.js.map +1 -0
  8. package/dist/auth/apikey.guard.d.ts +9 -0
  9. package/dist/auth/apikey.guard.d.ts.map +1 -0
  10. package/dist/auth/apikey.guard.js +86 -0
  11. package/dist/auth/apikey.guard.js.map +1 -0
  12. package/dist/auth/auth.controller.d.ts +10 -0
  13. package/dist/auth/auth.controller.d.ts.map +1 -0
  14. package/dist/auth/auth.controller.js +65 -0
  15. package/dist/auth/auth.controller.js.map +1 -0
  16. package/dist/auth/auth.interface.d.ts +8 -0
  17. package/dist/auth/auth.interface.d.ts.map +1 -0
  18. package/dist/auth/auth.interface.js +3 -0
  19. package/dist/auth/auth.interface.js.map +1 -0
  20. package/dist/auth/auth.module.d.ts +6 -0
  21. package/dist/auth/auth.module.d.ts.map +1 -0
  22. package/dist/auth/auth.module.js +81 -0
  23. package/dist/auth/auth.module.js.map +1 -0
  24. package/dist/auth/constant.d.ts +2 -0
  25. package/dist/auth/constant.d.ts.map +1 -0
  26. package/dist/auth/constant.js +5 -0
  27. package/dist/auth/constant.js.map +1 -0
  28. package/dist/auth/jwt-constant.d.ts +8 -0
  29. package/dist/auth/jwt-constant.d.ts.map +1 -0
  30. package/dist/auth/jwt-constant.js +60 -0
  31. package/dist/auth/jwt-constant.js.map +1 -0
  32. package/dist/auth/jwt-guard.d.ts +5 -0
  33. package/dist/auth/jwt-guard.d.ts.map +1 -0
  34. package/dist/auth/jwt-guard.js +18 -0
  35. package/dist/auth/jwt-guard.js.map +1 -0
  36. package/dist/auth/jwt-strategy.d.ts +16 -0
  37. package/dist/auth/jwt-strategy.d.ts.map +1 -0
  38. package/dist/auth/jwt-strategy.js +59 -0
  39. package/dist/auth/jwt-strategy.js.map +1 -0
  40. package/dist/auth/services/auth.service.d.ts +14 -0
  41. package/dist/auth/services/auth.service.d.ts.map +1 -0
  42. package/dist/auth/services/auth.service.js +56 -0
  43. package/dist/auth/services/auth.service.js.map +1 -0
  44. package/dist/auth/services/encryption.service.d.ts +11 -0
  45. package/dist/auth/services/encryption.service.d.ts.map +1 -0
  46. package/dist/auth/services/encryption.service.js +49 -0
  47. package/dist/auth/services/encryption.service.js.map +1 -0
  48. package/dist/auth.config.d.ts +29 -0
  49. package/dist/auth.config.d.ts.map +1 -0
  50. package/dist/auth.config.js +71 -0
  51. package/dist/auth.config.js.map +1 -0
  52. package/dist/banking/banking.controller.d.ts +18 -0
  53. package/dist/banking/banking.controller.d.ts.map +1 -0
  54. package/dist/banking/banking.controller.js +146 -0
  55. package/dist/banking/banking.controller.js.map +1 -0
  56. package/dist/banking/banking.module.d.ts +6 -0
  57. package/dist/banking/banking.module.d.ts.map +1 -0
  58. package/dist/banking/banking.module.js +90 -0
  59. package/dist/banking/banking.module.js.map +1 -0
  60. package/dist/banking/dto/account-transfer.dto.d.ts +17 -0
  61. package/dist/banking/dto/account-transfer.dto.d.ts.map +1 -0
  62. package/dist/banking/dto/account-transfer.dto.js +101 -0
  63. package/dist/banking/dto/account-transfer.dto.js.map +1 -0
  64. package/dist/banking/dto/account.dto.d.ts +19 -0
  65. package/dist/banking/dto/account.dto.d.ts.map +1 -0
  66. package/dist/banking/dto/account.dto.js +104 -0
  67. package/dist/banking/dto/account.dto.js.map +1 -0
  68. package/dist/banking/dto/fetch-bank-balance.dto.d.ts +12 -0
  69. package/dist/banking/dto/fetch-bank-balance.dto.d.ts.map +1 -0
  70. package/dist/banking/dto/fetch-bank-balance.dto.js +71 -0
  71. package/dist/banking/dto/fetch-bank-balance.dto.js.map +1 -0
  72. package/dist/banking/dto/transaction-history.dto.d.ts +15 -0
  73. package/dist/banking/dto/transaction-history.dto.d.ts.map +1 -0
  74. package/dist/banking/dto/transaction-history.dto.js +89 -0
  75. package/dist/banking/dto/transaction-history.dto.js.map +1 -0
  76. package/dist/banking/factory/bank-strategy.factory.d.ts +9 -0
  77. package/dist/banking/factory/bank-strategy.factory.d.ts.map +1 -0
  78. package/dist/banking/factory/bank-strategy.factory.js +48 -0
  79. package/dist/banking/factory/bank-strategy.factory.js.map +1 -0
  80. package/dist/banking/interfaces/bank-config.interface.d.ts +22 -0
  81. package/dist/banking/interfaces/bank-config.interface.d.ts.map +1 -0
  82. package/dist/banking/interfaces/bank-config.interface.js +3 -0
  83. package/dist/banking/interfaces/bank-config.interface.js.map +1 -0
  84. package/dist/banking/interfaces/bank-service.interface.d.ts +19 -0
  85. package/dist/banking/interfaces/bank-service.interface.d.ts.map +1 -0
  86. package/dist/banking/interfaces/bank-service.interface.js +3 -0
  87. package/dist/banking/interfaces/bank-service.interface.js.map +1 -0
  88. package/dist/banking/services/ASPAC.service.d.ts +25 -0
  89. package/dist/banking/services/ASPAC.service.d.ts.map +1 -0
  90. package/dist/banking/services/ASPAC.service.js +498 -0
  91. package/dist/banking/services/ASPAC.service.js.map +1 -0
  92. package/dist/banking/services/BankGateway.service.d.ts +18 -0
  93. package/dist/banking/services/BankGateway.service.d.ts.map +1 -0
  94. package/dist/banking/services/BankGateway.service.js +71 -0
  95. package/dist/banking/services/BankGateway.service.js.map +1 -0
  96. package/dist/banking/services/MBWIN.service.d.ts +25 -0
  97. package/dist/banking/services/MBWIN.service.d.ts.map +1 -0
  98. package/dist/banking/services/MBWIN.service.js +655 -0
  99. package/dist/banking/services/MBWIN.service.js.map +1 -0
  100. package/dist/banking/services/WelcomeBank.service.d.ts +29 -0
  101. package/dist/banking/services/WelcomeBank.service.d.ts.map +1 -0
  102. package/dist/banking/services/WelcomeBank.service.js +840 -0
  103. package/dist/banking/services/WelcomeBank.service.js.map +1 -0
  104. package/dist/banking/services/sms.service.d.ts +10 -0
  105. package/dist/banking/services/sms.service.d.ts.map +1 -0
  106. package/dist/banking/services/sms.service.js +97 -0
  107. package/dist/banking/services/sms.service.js.map +1 -0
  108. package/dist/banking/tokens/bank-service.tokens.d.ts +5 -0
  109. package/dist/banking/tokens/bank-service.tokens.d.ts.map +1 -0
  110. package/dist/banking/tokens/bank-service.tokens.js +8 -0
  111. package/dist/banking/tokens/bank-service.tokens.js.map +1 -0
  112. package/dist/banking/types.d.ts +10 -0
  113. package/dist/banking/types.d.ts.map +1 -0
  114. package/dist/banking/types.js +3 -0
  115. package/dist/banking/types.js.map +1 -0
  116. package/dist/decorators/response_message.decorator.d.ts +2 -0
  117. package/dist/decorators/response_message.decorator.d.ts.map +1 -0
  118. package/dist/decorators/response_message.decorator.js +7 -0
  119. package/dist/decorators/response_message.decorator.js.map +1 -0
  120. package/dist/helpers/axios-error.helper.d.ts +6 -0
  121. package/dist/helpers/axios-error.helper.d.ts.map +1 -0
  122. package/dist/helpers/axios-error.helper.js +78 -0
  123. package/dist/helpers/axios-error.helper.js.map +1 -0
  124. package/dist/helpers/response-format.helper.d.ts +4 -0
  125. package/dist/helpers/response-format.helper.d.ts.map +1 -0
  126. package/dist/helpers/response-format.helper.js +15 -0
  127. package/dist/helpers/response-format.helper.js.map +1 -0
  128. package/dist/index.d.ts +10 -0
  129. package/dist/index.d.ts.map +1 -0
  130. package/dist/index.js +26 -0
  131. package/dist/index.js.map +1 -0
  132. package/dist/interceptors/response.interceptor.d.ts +16 -0
  133. package/dist/interceptors/response.interceptor.d.ts.map +1 -0
  134. package/dist/interceptors/response.interceptor.js +80 -0
  135. package/dist/interceptors/response.interceptor.js.map +1 -0
  136. package/dist/logger/logger-interceptor.d.ts +14 -0
  137. package/dist/logger/logger-interceptor.d.ts.map +1 -0
  138. package/dist/logger/logger-interceptor.js +60 -0
  139. package/dist/logger/logger-interceptor.js.map +1 -0
  140. package/dist/logger/logger-option.d.ts +6 -0
  141. package/dist/logger/logger-option.d.ts.map +1 -0
  142. package/dist/logger/logger-option.js +103 -0
  143. package/dist/logger/logger-option.js.map +1 -0
  144. package/dist/logger/logger.config.d.ts +3 -0
  145. package/dist/logger/logger.config.d.ts.map +1 -0
  146. package/dist/logger/logger.config.js +31 -0
  147. package/dist/logger/logger.config.js.map +1 -0
  148. package/dist/logger/logger.module.d.ts +3 -0
  149. package/dist/logger/logger.module.d.ts.map +1 -0
  150. package/dist/logger/logger.module.js +76 -0
  151. package/dist/logger/logger.module.js.map +1 -0
  152. package/dist/main.d.ts +2 -0
  153. package/dist/main.d.ts.map +1 -0
  154. package/dist/main.js +13 -0
  155. package/dist/main.js.map +1 -0
  156. package/dist/tsconfig.build.tsbuildinfo +1 -0
  157. package/docker-compose.yml +14 -0
  158. package/ecosystem.config.js +35 -0
  159. package/eslint.config.mjs +34 -0
  160. package/nest-cli.json +8 -0
  161. package/package.json +102 -0
  162. package/src/app.module.ts +33 -0
  163. package/src/auth/apikey.guard.ts +42 -0
  164. package/src/auth/auth.controller.ts +41 -0
  165. package/src/auth/auth.interface.ts +7 -0
  166. package/src/auth/auth.module.ts +125 -0
  167. package/src/auth/constant.ts +1 -0
  168. package/src/auth/jwt-constant.ts +31 -0
  169. package/src/auth/jwt-guard.ts +5 -0
  170. package/src/auth/jwt-strategy.ts +43 -0
  171. package/src/auth/services/auth.service.ts +33 -0
  172. package/src/auth/services/encryption.service.ts +35 -0
  173. package/src/auth.config.ts +42 -0
  174. package/src/banking/banking.controller.ts +142 -0
  175. package/src/banking/banking.module.ts +142 -0
  176. package/src/banking/dto/account-transfer.dto.ts +66 -0
  177. package/src/banking/dto/account.dto.ts +70 -0
  178. package/src/banking/dto/fetch-bank-balance.dto.ts +46 -0
  179. package/src/banking/dto/transaction-history.dto.ts +58 -0
  180. package/src/banking/factory/bank-strategy.factory.ts +25 -0
  181. package/src/banking/interfaces/bank-config.interface.ts +25 -0
  182. package/src/banking/interfaces/bank-service.interface.ts +164 -0
  183. package/src/banking/services/ASPAC.service.ts +574 -0
  184. package/src/banking/services/BankGateway.service.ts +64 -0
  185. package/src/banking/services/MBWIN.service.ts +779 -0
  186. package/src/banking/services/WelcomeBank.service.ts +990 -0
  187. package/src/banking/services/sms.service.ts +50 -0
  188. package/src/banking/tokens/bank-service.tokens.ts +4 -0
  189. package/src/banking/types.ts +10 -0
  190. package/src/decorators/response_message.decorator.ts +4 -0
  191. package/src/helpers/axios-error.helper.ts +63 -0
  192. package/src/helpers/response-format.helper.ts +15 -0
  193. package/src/index.ts +15 -0
  194. package/src/interceptors/response.interceptor.ts +53 -0
  195. package/src/logger/logger-interceptor.ts +55 -0
  196. package/src/logger/logger-option.ts +119 -0
  197. package/src/logger/logger.config.ts +31 -0
  198. package/src/logger/logger.module.ts +31 -0
  199. package/src/main.ts +10 -0
  200. package/src/types/pino-daily-rotate-file.d.ts +31 -0
  201. package/tsconfig.build.json +11 -0
  202. package/tsconfig.build.tsbuildinfo +1 -0
  203. 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
+ }