Fix SMS import tableExists to use selected database name.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -92,17 +92,13 @@ function mapLedgerType(raw: string): SmsLedgerType {
|
|||||||
return 'debit';
|
return 'debit';
|
||||||
}
|
}
|
||||||
|
|
||||||
async function tableExists(conn: mysql.Connection, table: string) {
|
async function tableExists(conn: mysql.Connection, database: string, table: string) {
|
||||||
const db =
|
|
||||||
env('SMS_IMPORT_DB_DATABASE') ||
|
|
||||||
env('HAMKAR_DB_DATABASE') ||
|
|
||||||
env('KHANEGI_DB_DATABASE');
|
|
||||||
const [rows] = await conn.query(
|
const [rows] = await conn.query(
|
||||||
`SELECT 1 AS ok
|
`SELECT 1 AS ok
|
||||||
FROM information_schema.tables
|
FROM information_schema.tables
|
||||||
WHERE table_schema = ? AND table_name = ?
|
WHERE table_schema = ? AND table_name = ?
|
||||||
LIMIT 1`,
|
LIMIT 1`,
|
||||||
[db, table],
|
[database, table],
|
||||||
);
|
);
|
||||||
return Array.isArray(rows) && rows.length > 0;
|
return Array.isArray(rows) && rows.length > 0;
|
||||||
}
|
}
|
||||||
@@ -231,13 +227,13 @@ async function main() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (!(await tableExists(conn, 'sms_wallets'))) {
|
if (!(await tableExists(conn, database, 'sms_wallets'))) {
|
||||||
console.log('SKIP: sms_wallets table missing — billing not installed on this version.');
|
console.log('SKIP: sms_wallets table missing — billing not installed on this version.');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let smsPanel = '';
|
let smsPanel = '';
|
||||||
if (await tableExists(conn, 'settings')) {
|
if (await tableExists(conn, database, 'settings')) {
|
||||||
const [panelRows] = await conn.query(
|
const [panelRows] = await conn.query(
|
||||||
`SELECT \`value\` AS v FROM settings WHERE \`key\` = 'sms_panel' LIMIT 1`,
|
`SELECT \`value\` AS v FROM settings WHERE \`key\` = 'sms_panel' LIMIT 1`,
|
||||||
);
|
);
|
||||||
@@ -264,7 +260,7 @@ async function main() {
|
|||||||
const wallet = walletRows[0];
|
const wallet = walletRows[0];
|
||||||
const keys = chargeKeys(product);
|
const keys = chargeKeys(product);
|
||||||
const settings = new Map<string, string>();
|
const settings = new Map<string, string>();
|
||||||
if (await tableExists(conn, 'settings')) {
|
if (await tableExists(conn, database, 'settings')) {
|
||||||
const [settingRowsRaw] = await conn.query(
|
const [settingRowsRaw] = await conn.query(
|
||||||
`SELECT \`key\`, \`value\` FROM settings WHERE \`key\` IN (?, ?, ?, ?)`,
|
`SELECT \`key\`, \`value\` FROM settings WHERE \`key\` IN (?, ?, ?, ?)`,
|
||||||
[keys.card, keys.iban, keys.holder, keys.instruction],
|
[keys.card, keys.iban, keys.holder, keys.instruction],
|
||||||
@@ -290,7 +286,7 @@ async function main() {
|
|||||||
let sendLogs: SendLogRow[] = [];
|
let sendLogs: SendLogRow[] = [];
|
||||||
|
|
||||||
if (withHistory) {
|
if (withHistory) {
|
||||||
if (await tableExists(conn, 'sms_ledger')) {
|
if (await tableExists(conn, database, 'sms_ledger')) {
|
||||||
const [rows] = await conn.query(
|
const [rows] = await conn.query(
|
||||||
`SELECT type, amount, balance_after, price_per_part, parts, note, created_by, created_at
|
`SELECT type, amount, balance_after, price_per_part, parts, note, created_by, created_at
|
||||||
FROM sms_ledger
|
FROM sms_ledger
|
||||||
@@ -298,7 +294,7 @@ async function main() {
|
|||||||
);
|
);
|
||||||
ledgers = rows as LedgerRow[];
|
ledgers = rows as LedgerRow[];
|
||||||
}
|
}
|
||||||
if (await tableExists(conn, 'sms_send_logs')) {
|
if (await tableExists(conn, database, 'sms_send_logs')) {
|
||||||
const [rows] = await conn.query(
|
const [rows] = await conn.query(
|
||||||
`SELECT receiver, body, parts, price_per_part, total_amount, provider, source, is_alert, created_at
|
`SELECT receiver, body, parts, price_per_part, total_amount, provider, source, is_alert, created_at
|
||||||
FROM sms_send_logs
|
FROM sms_send_logs
|
||||||
|
|||||||
Reference in New Issue
Block a user