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';
|
||||
}
|
||||
|
||||
async function tableExists(conn: mysql.Connection, table: string) {
|
||||
const db =
|
||||
env('SMS_IMPORT_DB_DATABASE') ||
|
||||
env('HAMKAR_DB_DATABASE') ||
|
||||
env('KHANEGI_DB_DATABASE');
|
||||
async function tableExists(conn: mysql.Connection, database: string, table: string) {
|
||||
const [rows] = await conn.query(
|
||||
`SELECT 1 AS ok
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = ? AND table_name = ?
|
||||
LIMIT 1`,
|
||||
[db, table],
|
||||
[database, table],
|
||||
);
|
||||
return Array.isArray(rows) && rows.length > 0;
|
||||
}
|
||||
@@ -231,13 +227,13 @@ async function main() {
|
||||
});
|
||||
|
||||
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.');
|
||||
return;
|
||||
}
|
||||
|
||||
let smsPanel = '';
|
||||
if (await tableExists(conn, 'settings')) {
|
||||
if (await tableExists(conn, database, 'settings')) {
|
||||
const [panelRows] = await conn.query(
|
||||
`SELECT \`value\` AS v FROM settings WHERE \`key\` = 'sms_panel' LIMIT 1`,
|
||||
);
|
||||
@@ -264,7 +260,7 @@ async function main() {
|
||||
const wallet = walletRows[0];
|
||||
const keys = chargeKeys(product);
|
||||
const settings = new Map<string, string>();
|
||||
if (await tableExists(conn, 'settings')) {
|
||||
if (await tableExists(conn, database, 'settings')) {
|
||||
const [settingRowsRaw] = await conn.query(
|
||||
`SELECT \`key\`, \`value\` FROM settings WHERE \`key\` IN (?, ?, ?, ?)`,
|
||||
[keys.card, keys.iban, keys.holder, keys.instruction],
|
||||
@@ -290,7 +286,7 @@ async function main() {
|
||||
let sendLogs: SendLogRow[] = [];
|
||||
|
||||
if (withHistory) {
|
||||
if (await tableExists(conn, 'sms_ledger')) {
|
||||
if (await tableExists(conn, database, 'sms_ledger')) {
|
||||
const [rows] = await conn.query(
|
||||
`SELECT type, amount, balance_after, price_per_part, parts, note, created_by, created_at
|
||||
FROM sms_ledger
|
||||
@@ -298,7 +294,7 @@ async function main() {
|
||||
);
|
||||
ledgers = rows as LedgerRow[];
|
||||
}
|
||||
if (await tableExists(conn, 'sms_send_logs')) {
|
||||
if (await tableExists(conn, database, 'sms_send_logs')) {
|
||||
const [rows] = await conn.query(
|
||||
`SELECT receiver, body, parts, price_per_part, total_amount, provider, source, is_alert, created_at
|
||||
FROM sms_send_logs
|
||||
|
||||
Reference in New Issue
Block a user