Updates
This commit is contained in:
@@ -11,6 +11,7 @@ import {
|
||||
} from "../../../types";
|
||||
import purgeDefaultFields from "../../../utils/purge-default-fields";
|
||||
import grabParsedValue from "./grab-parsed-value";
|
||||
import { ConnectionConfig } from "mariadb";
|
||||
|
||||
export type AddDbEntryParam<
|
||||
T extends { [k: string]: any } = any,
|
||||
@@ -34,6 +35,7 @@ export type AddDbEntryParam<
|
||||
encryptionSalt?: string;
|
||||
forceLocal?: boolean;
|
||||
debug?: boolean;
|
||||
dbConfig?: ConnectionConfig;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -57,6 +59,7 @@ export default async function addDbEntry<
|
||||
encryptionSalt,
|
||||
forceLocal,
|
||||
debug,
|
||||
dbConfig,
|
||||
}: AddDbEntryParam<T, K>): Promise<APIResponseObject<PostInsertReturn>> {
|
||||
const isMaster = forceLocal
|
||||
? true
|
||||
@@ -89,9 +92,10 @@ export default async function addDbEntry<
|
||||
isMaster ? "" : `\`${dbFullName}\`.`
|
||||
}\`${tableName}\` WHERE \`${duplicateColumnName}\`=?`;
|
||||
|
||||
const duplicateValue = await connDbHandler(null, checkDuplicateQuery, [
|
||||
duplicateColumnValue,
|
||||
]);
|
||||
const duplicateValue = await connDbHandler({
|
||||
query: checkDuplicateQuery,
|
||||
values: [duplicateColumnValue],
|
||||
});
|
||||
|
||||
if (duplicateValue?.[0] && !update) {
|
||||
return {
|
||||
@@ -110,6 +114,9 @@ export default async function addDbEntry<
|
||||
encryptionSalt,
|
||||
identifierColumnName: duplicateColumnName,
|
||||
identifierValue: duplicateColumnValue || "",
|
||||
dbConfig,
|
||||
debug,
|
||||
forceLocal,
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -205,12 +212,12 @@ export default async function addDbEntry<
|
||||
|
||||
const finalQueryValues = grabFinalQueryValuesArr(queryValuesArray);
|
||||
|
||||
const newInsert = await connDbHandler(
|
||||
null,
|
||||
const newInsert = await connDbHandler({
|
||||
query,
|
||||
finalQueryValues,
|
||||
debug
|
||||
);
|
||||
values: finalQueryValues,
|
||||
debug,
|
||||
dsqlConnOpts: { config: dbConfig },
|
||||
});
|
||||
|
||||
return {
|
||||
success: Boolean(newInsert?.insertId),
|
||||
@@ -250,12 +257,12 @@ export default async function addDbEntry<
|
||||
batchQueryValuesArray.flat()
|
||||
);
|
||||
|
||||
const newInsert = await connDbHandler(
|
||||
null,
|
||||
const newInsert = await connDbHandler({
|
||||
query,
|
||||
finalQueryValues,
|
||||
debug
|
||||
);
|
||||
values: finalQueryValues,
|
||||
debug,
|
||||
dsqlConnOpts: { config: dbConfig },
|
||||
});
|
||||
|
||||
if (debug) {
|
||||
debugLog({
|
||||
|
||||
@@ -42,9 +42,10 @@ export default async function deleteDbEntry<
|
||||
isMaster && !dbFullName ? "" : `\`${dbFullName}\`.`
|
||||
}\`${tableName}\` WHERE \`${identifierColumnName.toString()}\`=?`;
|
||||
|
||||
const deletedEntry = await connDbHandler(null, query, [
|
||||
identifierValue,
|
||||
]);
|
||||
const deletedEntry = await connDbHandler({
|
||||
query,
|
||||
values: [identifierValue],
|
||||
});
|
||||
|
||||
/**
|
||||
* Return statement
|
||||
|
||||
@@ -9,6 +9,7 @@ import {
|
||||
import _ from "lodash";
|
||||
import purgeDefaultFields from "../../../utils/purge-default-fields";
|
||||
import grabParsedValue from "./grab-parsed-value";
|
||||
import { ConnectionConfig } from "mariadb";
|
||||
|
||||
type Param<T extends { [k: string]: any } = any> = {
|
||||
dbContext?: (typeof DbContextsArray)[number];
|
||||
@@ -22,6 +23,7 @@ type Param<T extends { [k: string]: any } = any> = {
|
||||
identifierValue: string | number;
|
||||
forceLocal?: boolean;
|
||||
debug?: boolean;
|
||||
dbConfig?: ConnectionConfig;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -42,6 +44,7 @@ export default async function updateDbEntry<
|
||||
encryptionSalt,
|
||||
forceLocal,
|
||||
debug,
|
||||
dbConfig,
|
||||
}: Param<T>): Promise<APIResponseObject<PostInsertReturn>> {
|
||||
/**
|
||||
* Check if data is valid
|
||||
@@ -139,7 +142,11 @@ export default async function updateDbEntry<
|
||||
|
||||
updateValues.push(identifierValue);
|
||||
|
||||
const updatedEntry = await connDbHandler(null, query, updateValues);
|
||||
const updatedEntry = await connDbHandler({
|
||||
query,
|
||||
values: updateValues,
|
||||
dsqlConnOpts: { config: dbConfig },
|
||||
});
|
||||
|
||||
/**
|
||||
* Return statement
|
||||
|
||||
@@ -29,7 +29,10 @@ export default async function fullAccessDbHandler({
|
||||
* @description Fetch data from db if no cache
|
||||
*/
|
||||
try {
|
||||
results = await connDbHandler(null, queryString, queryValuesArray);
|
||||
results = await connDbHandler({
|
||||
query: queryString,
|
||||
values: queryValuesArray,
|
||||
});
|
||||
|
||||
////////////////////////////////////////
|
||||
} catch (error: any) {
|
||||
|
||||
@@ -42,7 +42,7 @@ export default async function suDbHandler({
|
||||
// dateStrings: true,
|
||||
// });
|
||||
|
||||
const results = await connDbHandler(connection, query);
|
||||
const results = await connDbHandler({ conn: connection, query });
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ export default async function userDbHandler({
|
||||
metaAsArray: true,
|
||||
});
|
||||
|
||||
const results = await connDbHandler(connection, query);
|
||||
const results = await connDbHandler({ conn: connection, query });
|
||||
|
||||
if (Array.isArray(results)) {
|
||||
const parsedDbResults = results.map((res) => parseResultObject(res));
|
||||
|
||||
@@ -1477,6 +1477,7 @@ export type DsqlCrudParam<
|
||||
dbFullName?: string;
|
||||
dbName?: string;
|
||||
tableSchema?: DSQL_TableSchemaType;
|
||||
dbConfig?: ConnectionConfig;
|
||||
};
|
||||
|
||||
export type ErrorCallback = (title: string, error: Error, data?: any) => void;
|
||||
|
||||
@@ -27,7 +27,9 @@ export default async function importMariadbDatabase({
|
||||
const finalMariadbHost = mariadbHost || process.env.DSQL_DB_HOST;
|
||||
const finalMariadbPass = mariadbPass || process.env.DSQL_DB_PASSWORD;
|
||||
|
||||
await connDbHandler(null, `CREATE DATABASE IF NOT EXISTS ${dbFullName}`);
|
||||
await connDbHandler({
|
||||
query: `CREATE DATABASE IF NOT EXISTS ${dbFullName}`,
|
||||
});
|
||||
|
||||
const cmd = `${mysqlPath} -u ${finalMariadbUser} -h ${finalMariadbHost} -p"${finalMariadbPass}" ${dbFullName} < ${targetFilePath}`;
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ export default async function <
|
||||
countOnly,
|
||||
dbFullName,
|
||||
tableSchema,
|
||||
dbConfig,
|
||||
}: Omit<
|
||||
DsqlCrudParam<T>,
|
||||
"action" | "data" | "sanitize"
|
||||
@@ -56,7 +57,10 @@ export default async function <
|
||||
];
|
||||
}
|
||||
|
||||
const res = await connDbHandler(undefined, connQueries);
|
||||
const res = await connDbHandler({
|
||||
query: connQueries,
|
||||
dsqlConnOpts: { config: dbConfig },
|
||||
});
|
||||
|
||||
const parsedRes = checkArrayDepth(res, 2)
|
||||
? parseDbResults({ unparsedResults: res[0], tableSchema })
|
||||
|
||||
@@ -28,6 +28,7 @@ export default async function dsqlCrud<
|
||||
debug,
|
||||
tableSchema,
|
||||
deleteKeyValuesOperator,
|
||||
dbConfig,
|
||||
} = params;
|
||||
|
||||
const finalData = (sanitize ? sanitize({ data }) : data) as T;
|
||||
@@ -50,6 +51,7 @@ export default async function dsqlCrud<
|
||||
dbFullName,
|
||||
debug,
|
||||
tableSchema,
|
||||
dbConfig,
|
||||
});
|
||||
return INSERT_RESULT;
|
||||
|
||||
@@ -64,6 +66,7 @@ export default async function dsqlCrud<
|
||||
identifierValue: String(targetValue || targetId),
|
||||
debug,
|
||||
tableSchema,
|
||||
dbConfig,
|
||||
});
|
||||
|
||||
return UPDATE_RESULT;
|
||||
@@ -81,11 +84,11 @@ export default async function dsqlCrud<
|
||||
deleteKeyValuesOperator,
|
||||
});
|
||||
|
||||
const res = (await connDbHandler(
|
||||
undefined,
|
||||
deleteQuery?.query,
|
||||
deleteQuery?.values
|
||||
)) as PostInsertReturn;
|
||||
const res = (await connDbHandler({
|
||||
query: deleteQuery?.query,
|
||||
values: deleteQuery?.values,
|
||||
dsqlConnOpts: { config: dbConfig },
|
||||
})) as PostInsertReturn;
|
||||
|
||||
return {
|
||||
success: Boolean(res.affectedRows),
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import debugLog from "../logging/debug-log";
|
||||
import { DSQLErrorObject } from "../../types";
|
||||
import { DsqlConnectionParam, DSQLErrorObject } from "../../types";
|
||||
import mariadb, { Connection, ConnectionConfig, Pool } from "mariadb";
|
||||
import grabDSQLConnection from "../grab-dsql-connection";
|
||||
|
||||
@@ -14,27 +14,36 @@ type Return<ReturnType = any> =
|
||||
| null
|
||||
| { error?: string; errors?: DSQLErrorObject[]; config?: ConnectionConfig };
|
||||
|
||||
export type ConnectionDbHandlerParams = {
|
||||
/**
|
||||
* MariaDB Connection
|
||||
*/
|
||||
conn?: mariadb.Connection | null;
|
||||
/**
|
||||
* String Or `ConnDBHandlerQueryObject` Array
|
||||
*/
|
||||
query?: ConnDBHandlerQueryObject["query"] | ConnDBHandlerQueryObject[];
|
||||
/**
|
||||
* Array of Values to Sanitize and Inject
|
||||
*/
|
||||
values?: ConnDBHandlerQueryObject["values"];
|
||||
debug?: boolean;
|
||||
dsqlConnOpts?: DsqlConnectionParam;
|
||||
};
|
||||
|
||||
/**
|
||||
* # Run Query From MySQL Connection
|
||||
* @description Run a query from a pre-existing MySQL/Mariadb Connection
|
||||
* setup with `serverless-mysql` npm module
|
||||
*/
|
||||
export default async function connDbHandler<ReturnType = any>(
|
||||
/**
|
||||
* MariaDB Connection
|
||||
*/
|
||||
conn?: mariadb.Connection | null,
|
||||
/**
|
||||
* String Or `ConnDBHandlerQueryObject` Array
|
||||
*/
|
||||
query?: ConnDBHandlerQueryObject["query"] | ConnDBHandlerQueryObject[],
|
||||
/**
|
||||
* Array of Values to Sanitize and Inject
|
||||
*/
|
||||
values?: ConnDBHandlerQueryObject["values"],
|
||||
debug?: boolean
|
||||
): Promise<Return<ReturnType>> {
|
||||
const finalConnection = conn || (await grabDSQLConnection());
|
||||
export default async function connDbHandler<ReturnType = any>({
|
||||
conn,
|
||||
debug,
|
||||
query,
|
||||
values,
|
||||
dsqlConnOpts,
|
||||
}: ConnectionDbHandlerParams): Promise<Return<ReturnType>> {
|
||||
const finalConnection = conn || (await grabDSQLConnection(dsqlConnOpts));
|
||||
|
||||
try {
|
||||
if (!finalConnection) throw new Error("No Connection Found!");
|
||||
|
||||
Reference in New Issue
Block a user