This commit is contained in:
Benjamin Toby
2024-11-06 13:06:51 +01:00
parent 06ff13c653
commit eb341a7845
276 changed files with 4197 additions and 510 deletions
+3 -3
View File
@@ -3,9 +3,9 @@
const fs = require("fs");
const decrypt = require("./decrypt");
/** @type {import("@/package-shared/types").CheckApiCredentialsFn} */
/** @type {import("../../types").CheckApiCredentialsFn} */
const grabApiCred = ({ key, database, table }) => {
if (!key) return undefined;
if (!key) return null;
try {
const allowedKeysPath = process.env.DSQL_API_KEYS_PATH;
@@ -16,7 +16,7 @@ const grabApiCred = ({ key, database, table }) => {
);
const ApiJSON = decrypt(key);
/** @type {import("@/package-shared/types").ApiKeyObject} */
/** @type {import("../../types").ApiKeyObject} */
const ApiObject = JSON.parse(ApiJSON || "");
const isApiKeyValid = fs.existsSync(
`${allowedKeysPath}/${ApiObject.sign}`
+17 -5
View File
@@ -18,6 +18,8 @@ const serverError = require("../serverError");
const addDbEntry = require("./addDbEntry");
const updateDbEntry = require("./updateDbEntry");
const deleteDbEntry = require("./deleteDbEntry");
const DB_HANDLER = require("../../../utils/backend/global-db/DB_HANDLER");
const parseDbResults = require("../parseDbResults");
/** ****************************************************************************** */
/** ****************************************************************************** */
@@ -31,8 +33,9 @@ const deleteDbEntry = require("./deleteDbEntry");
* ==============================================================================
* @param {object} params - An object containing the function parameters.
* @param {string} params.dbFullName - Database full name. Eg. "datasquire_user_2_test"
* @param {string|any} params.query - Query string or object
* @param {string | any} params.query - Query string or object
* @param {boolean} [params.readOnly] - Is this operation read only?
* @param {boolean} [params.local] - Is this operation read only?
* @param {import("../../../types").DSQL_DatabaseSchemaType} [params.dbSchema] - Database schema
* @param {string[]} [params.queryValuesArray] - An optional array of query values if "?" is used in the query string
* @param {string} [params.tableName] - Table Name
@@ -46,6 +49,7 @@ async function runQuery({
dbSchema,
queryValuesArray,
tableName,
local,
}) {
/**
* Declare variables
@@ -85,7 +89,15 @@ async function runQuery({
*/
try {
if (typeof query === "string") {
if (readOnly) {
if (local) {
const rawResults = await DB_HANDLER(query, queryValuesArray);
result = tableSchema
? parseDbResults({
unparsedResults: rawResults,
tableSchema,
})
: rawResults;
} else if (readOnly) {
result = await varReadOnlyDatabaseDbHandler({
queryString: query,
queryValuesArray,
@@ -120,7 +132,7 @@ async function runQuery({
switch (action.toLowerCase()) {
case "insert":
result = await addDbEntry({
dbContext: "Dsql User",
dbContext: local ? "Master" : "Dsql User",
paradigm: "Full Access",
dbFullName: dbFullName,
tableName: table,
@@ -139,7 +151,7 @@ async function runQuery({
case "update":
result = await updateDbEntry({
dbContext: "Dsql User",
dbContext: local ? "Master" : "Dsql User",
paradigm: "Full Access",
dbFullName: dbFullName,
tableName: table,
@@ -153,7 +165,7 @@ async function runQuery({
case "delete":
result = await deleteDbEntry({
dbContext: "Dsql User",
dbContext: local ? "Master" : "Dsql User",
paradigm: "Full Access",
dbFullName: dbFullName,
tableName: table,
+2 -1
View File
@@ -6,7 +6,8 @@ const serverError = require("./serverError");
const mysql = require("serverless-mysql");
const path = require("path");
const SSL_DIR = "/app/ssl";
const SSL_DIR =
process.env.DSQL_SSL_DIR || path.resolve(__dirname, "../../../ssl");
const connection = mysql({
config: {
+2
View File
@@ -9,6 +9,7 @@ const serverError = require("./serverError");
* @param {object} param0
* @param {string} param0.queryString
* @param {string} param0.database
* @param {boolean} [param0.local]
* @param {import("../../types").DSQL_TableSchemaType | null} [param0.tableSchema]
* @param {string[]} [param0.queryValuesArray]
* @returns
@@ -18,6 +19,7 @@ module.exports = async function fullAccessDbHandler({
database,
tableSchema,
queryValuesArray,
local,
}) {
/**
* Declare variables
+1 -1
View File
@@ -1,8 +1,8 @@
// @ts-check
const { IncomingMessage } = require("http");
const parseCookies = require("datasquirel/utils/functions/parseCookies");
const decrypt = require("./decrypt");
const parseCookies = require("../../utils/backend/parseCookies");
/**
* @async