add SQL DB access to everywhere we are using the DB, up to the "C" files

This commit is contained in:
2025-05-27 01:27:04 -06:00
parent 81d4f0c762
commit 7de4125eb7
24 changed files with 511 additions and 119 deletions

View File

@@ -2,6 +2,7 @@ import { PlatformServiceFactory } from "@/services/PlatformServiceFactory";
import { MASTER_SETTINGS_KEY, Settings } from "./tables/settings";
import { logger } from "@/utils/logger";
import { DEFAULT_ENDORSER_API_SERVER } from "@/constants/app";
import { QueryExecResult } from "@/interfaces/database";
export async function updateDefaultSettings(
settingsChanges: Settings,
@@ -149,6 +150,26 @@ export async function logConsoleAndDb(
await logToDb(message);
}
/**
* Generates an SQL INSERT statement and parameters from a model object.
* @param model The model object containing fields to update
* @param tableName The name of the table to update
* @returns Object containing the SQL statement and parameters array
*/
export function generateInsertStatement(
model: Record<string, unknown>,
tableName: string,
): { sql: string; params: unknown[] } {
const columns = Object.keys(model);
const values = Object.values(model);
const placeholders = values.map(() => "?").join(", ");
const insertSql = `INSERT INTO ${tableName} (${columns.join(", ")}) VALUES (${placeholders})`;
return {
sql: insertSql,
params: values,
};
}
/**
* Generates an SQL UPDATE statement and parameters from a model object.
* @param model The model object containing fields to update
@@ -157,7 +178,7 @@ export async function logConsoleAndDb(
* @param whereParams Parameters for the WHERE clause
* @returns Object containing the SQL statement and parameters array
*/
function generateUpdateStatement(
export function generateUpdateStatement(
model: Record<string, unknown>,
tableName: string,
whereClause: string,
@@ -186,6 +207,17 @@ function generateUpdateStatement(
};
}
export function mapQueryResultToValues(
record: QueryExecResult | undefined,
): Array<Record<string, unknown>> {
if (!record) {
return [];
}
return mapColumnsToValues(record.columns, record.values) as Array<
Record<string, unknown>
>;
}
/**
* Maps an array of column names to an array of value arrays, creating objects where each column name
* is mapped to its corresponding value.
@@ -196,7 +228,7 @@ function generateUpdateStatement(
export function mapColumnsToValues(
columns: string[],
values: unknown[][],
): Record<string, unknown>[] {
): Array<Record<string, unknown>> {
return values.map((row) => {
const obj: Record<string, unknown> = {};
columns.forEach((column, index) => {