@stashfin/mysql2 1.4.656 → 1.4.658

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/index.d.ts CHANGED
@@ -15,4 +15,10 @@ export declare class MysqlConnector {
15
15
  insertData(tableName: string, data: Record<string, string | number>): Promise<ResultSetHeader>;
16
16
  updateData(tableName: string, data: Record<string, any>, condition: string, conditionValues?: Array<string | number>): Promise<ResultSetHeader>;
17
17
  close(): Promise<void>;
18
+ beginTransaction(): Promise<import("mysql2/promise").PoolConnection>;
19
+ commitTransaction(connection: any): Promise<void>;
20
+ rollbackTransaction(connection: any): Promise<void>;
21
+ executeInTransaction<T>(callback: (connection: any) => Promise<T>): Promise<T>;
22
+ insertDataInTransaction(connection: any, tableName: string, data: Record<string, string | number>): Promise<ResultSetHeader>;
23
+ updateDataInTransaction(connection: any, tableName: string, data: Record<string, any>, condition: string, conditionValues?: Array<string | number>): Promise<ResultSetHeader>;
18
24
  }
package/index.js CHANGED
@@ -94,5 +94,72 @@ class MysqlConnector {
94
94
  async close() {
95
95
  await this.pool.end();
96
96
  }
97
+ // Transaction methods
98
+ async beginTransaction() {
99
+ const connection = await this.getConnection();
100
+ await connection.beginTransaction();
101
+ return connection;
102
+ }
103
+ async commitTransaction(connection) {
104
+ try {
105
+ await connection.commit();
106
+ }
107
+ finally {
108
+ connection.release();
109
+ }
110
+ }
111
+ async rollbackTransaction(connection) {
112
+ try {
113
+ await connection.rollback();
114
+ }
115
+ finally {
116
+ connection.release();
117
+ }
118
+ }
119
+ async executeInTransaction(callback) {
120
+ const connection = await this.beginTransaction();
121
+ try {
122
+ const result = await callback(connection);
123
+ await this.commitTransaction(connection);
124
+ return result;
125
+ }
126
+ catch (error) {
127
+ await this.rollbackTransaction(connection);
128
+ throw error;
129
+ }
130
+ }
131
+ async insertDataInTransaction(connection, tableName, data) {
132
+ const keys = Object.keys(data);
133
+ const values = Object.values(data);
134
+ const sql = `INSERT INTO ${tableName} (${keys.join(', ')}) VALUES (${keys
135
+ .map(() => '?')
136
+ .join(', ')})`;
137
+ return new Promise((resolve, reject) => {
138
+ connection.query(sql, values, function (err, results, fields) {
139
+ if (err)
140
+ reject(err);
141
+ else
142
+ resolve(results || undefined);
143
+ });
144
+ });
145
+ }
146
+ async updateDataInTransaction(connection, tableName,
147
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
148
+ data, condition, conditionValues) {
149
+ const keys = Object.keys(data);
150
+ const values = Object.values(data);
151
+ const sql = `UPDATE ${tableName} SET ${keys
152
+ .map((key) => `${key} = ?`)
153
+ .join(', ')} WHERE ${condition}`;
154
+ const finalValues = [...values, ...(conditionValues || [])];
155
+ return new Promise((resolve, reject) => {
156
+ connection.query(sql, finalValues, function (err, results, fields) {
157
+ if (err)
158
+ reject(err);
159
+ else
160
+ resolve(results || undefined);
161
+ });
162
+ });
163
+ }
97
164
  }
98
165
  exports.MysqlConnector = MysqlConnector;
@@ -0,0 +1,48 @@
1
+ import { RowDataPacket } from "mysql2";
2
+ export interface LocCustomersUpdate {
3
+ id?: number;
4
+ customer_id: number;
5
+ loc_limit: number;
6
+ used_loc?: number;
7
+ max_tenure?: number;
8
+ rate_of_interest?: number;
9
+ processing_fees_rate?: number;
10
+ transaction_fee_rate?: number;
11
+ transaction_fee_rate_non_fcp?: number;
12
+ processing_fees_rate_bank?: number;
13
+ emi_date?: number;
14
+ create_date?: Date;
15
+ update_date?: Date;
16
+ admin_id?: number;
17
+ status?: number;
18
+ can_reload_card?: boolean;
19
+ max_withdrawable_amount?: number;
20
+ minimum_request_amount?: number;
21
+ request_amount_increment_step?: number;
22
+ salary?: number;
23
+ ownership_type?: number;
24
+ company_category?: string;
25
+ requested_amount?: number;
26
+ requested_tenure?: number;
27
+ other_fees?: number;
28
+ loc_mandatory_approved_amount?: number;
29
+ loc_enabled_date?: Date;
30
+ voucher_assigned?: number;
31
+ bureau_score?: string;
32
+ dbr?: number;
33
+ max_loc_limit?: number;
34
+ max_loc_tenure?: number;
35
+ max_loc_roi?: number;
36
+ address_pop_check?: boolean;
37
+ pending_transfer?: number;
38
+ income_multiplier?: number;
39
+ imps_capping_per_day?: number;
40
+ disable_reason_code?: number;
41
+ bureau?: number;
42
+ credit_shield?: number;
43
+ min_tenure?: number;
44
+ max_eligible_limit?: number;
45
+ old_loc_limit?: number;
46
+ }
47
+ export interface LocCustomersUpdateModel extends LocCustomersUpdate, RowDataPacket {
48
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stashfin/mysql2",
3
- "version": "1.4.656",
3
+ "version": "1.4.658",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,24 +0,0 @@
1
- import { RowDataPacket } from "mysql2";
2
- interface EqxCustomersTable {
3
- id: number;
4
- mobile: string;
5
- first_name?: string;
6
- last_name?: string;
7
- upi_number?: string;
8
- upi_onboarding_status?: boolean;
9
- device_id?: string;
10
- push_id?: string;
11
- login_ip?: string;
12
- vpa?: string;
13
- referral_code?: string;
14
- token?: string;
15
- email?: string;
16
- biometric_enabled?: boolean;
17
- status?: string;
18
- is_deleted?: boolean;
19
- created_at?: Date;
20
- updated_at?: Date;
21
- }
22
- export interface EqxCustomerModel extends EqxCustomersTable, RowDataPacket {
23
- }
24
- export {};
@@ -1,22 +0,0 @@
1
- import { RowDataPacket } from "mysql2";
2
- export declare enum StatusEnum {
3
- Pending = "pending",
4
- Success = "success"
5
- }
6
- export declare enum YesNoEnum {
7
- Y = "Y",
8
- N = "N"
9
- }
10
- export interface DeviceBindingTable {
11
- id: number;
12
- customer_id: number;
13
- device_id: string;
14
- sim_no?: string | null;
15
- sim_network?: string | null;
16
- status: StatusEnum;
17
- is_active: YesNoEnum;
18
- created_at?: Date | null;
19
- updated_at?: Date | null;
20
- }
21
- export interface DeviceBindingModel extends DeviceBindingTable, RowDataPacket {
22
- }
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.YesNoEnum = exports.StatusEnum = void 0;
4
- var StatusEnum;
5
- (function (StatusEnum) {
6
- StatusEnum["Pending"] = "pending";
7
- StatusEnum["Success"] = "success";
8
- })(StatusEnum || (exports.StatusEnum = StatusEnum = {}));
9
- var YesNoEnum;
10
- (function (YesNoEnum) {
11
- YesNoEnum["Y"] = "Y";
12
- YesNoEnum["N"] = "N";
13
- })(YesNoEnum || (exports.YesNoEnum = YesNoEnum = {}));
@@ -1,33 +0,0 @@
1
- import { RowDataPacket } from 'mysql2';
2
- interface Offers {
3
- id: number;
4
- title: string;
5
- description: string;
6
- offer_code: string;
7
- category_id: number;
8
- total_limit: number;
9
- user_daily_limit: number;
10
- user_weekly_limit: number;
11
- user_monthly_limit: number;
12
- backup_offer_id: number | null;
13
- tier: number | null;
14
- reward_type_id: number;
15
- reward_nature: string;
16
- min_value: number;
17
- max_value: number;
18
- probability: JSON;
19
- created_at: Date;
20
- updated_at: Date;
21
- }
22
- interface OfferCodeUsage {
23
- id: number;
24
- offer_id: number;
25
- user_id: number;
26
- created_at: Date;
27
- updated_at: Date;
28
- }
29
- export interface OffersModel extends Offers, RowDataPacket {
30
- }
31
- export interface OfferCodeUsageModel extends OfferCodeUsage, RowDataPacket {
32
- }
33
- export {};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,14 +0,0 @@
1
- import { RowDataPacket } from 'mysql2';
2
- export interface WealthWebhookTable {
3
- id?: number;
4
- customer_id?: number;
5
- gateway_id?: string;
6
- event_type?: string;
7
- event_property?: string;
8
- event_status?: string;
9
- webhook_data?: string;
10
- created_at?: Date;
11
- updated_at?: Date;
12
- }
13
- export interface WealthWebhookModel extends WealthWebhookTable, RowDataPacket {
14
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });