minor revision

This commit is contained in:
Tben 2023-07-24 14:37:08 +01:00
parent cecdd5e764
commit ab6a09558c
16 changed files with 14 additions and 906 deletions

View File

@ -1,7 +1,5 @@
/** /**
* ==============================================================================
* Imports * Imports
* ==============================================================================
*/ */
const imageInputFileToBase64 = require("./media/imageInputFileToBase64"); const imageInputFileToBase64 = require("./media/imageInputFileToBase64");
const imageInputToBase64 = require("./media/imageInputToBase64"); const imageInputToBase64 = require("./media/imageInputToBase64");
@ -9,17 +7,12 @@ const inputFileToBase64 = require("./media/inputFileToBase64");
const getAccessToken = require("./auth/google/getAccessToken"); const getAccessToken = require("./auth/google/getAccessToken");
const logout = require("./auth/logout"); const logout = require("./auth/logout");
/** ****************************************************************************** */ ////////////////////////////////////////
/** ****************************************************************************** */ ////////////////////////////////////////
/** ****************************************************************************** */ ////////////////////////////////////////
/** ****************************************************************************** */
/** ****************************************************************************** */
/** ****************************************************************************** */
/** /**
* ==============================================================================
* Media Functions Object * Media Functions Object
* ==============================================================================
*/ */
const media = { const media = {
imageInputToBase64: imageInputToBase64, imageInputToBase64: imageInputToBase64,
@ -28,9 +21,7 @@ const media = {
}; };
/** /**
* ============================================================================== * User Auth Object
* Media Functions Object
* ==============================================================================
*/ */
const auth = { const auth = {
google: { google: {
@ -40,9 +31,7 @@ const auth = {
}; };
/** /**
* ==============================================================================
* Main Export * Main Export
* ==============================================================================
*/ */
const datasquirelClient = { const datasquirelClient = {
media: media, media: media,
@ -50,7 +39,3 @@ const datasquirelClient = {
}; };
module.exports = datasquirelClient; module.exports = datasquirelClient;
/** ********************************************** */
/** ********************************************** */
/** ********************************************** */

View File

@ -1,163 +0,0 @@
/**
* Imports: Handle imports
*/
const encrypt = require("../../functions/encrypt");
const sanitizeHtml = require("sanitize-html");
const sanitizeHtmlOptions = require("../utils/sanitizeHtmlOptions");
const dsqlDbHandler = require("../utils/dsqlDbHandler");
const updateDb = require("./updateDb");
/**
* Add a db Entry Function
* ==============================================================================
* @description Description
* @async
*
* @param {object} params - An object containing the function parameters.
* @param {string} params.dbFullName - Database full name
* @param {string} params.tableName - Table name
* @param {object} params.data - Data to add
* @param {DSQL_TableSchemaType?} params.tableSchema - Table schema
* @param {string?} params.duplicateColumnName - Duplicate column name
* @param {string?} params.duplicateColumnValue - Duplicate column value
* @param {boolean?} params.update - Update this row if it exists
* @param {string?} params.dbHost - Database host
* @param {string?} params.dbPassword - Database password
* @param {string?} params.dbUsername - Database username
* @param {string?} params.encryptionKey - Encryption key
* @param {string?} params.encryptionSalt - Encryption salt
*
* @returns {Promise<object|null>}
*/
async function addDb({ dbFullName, tableName, data, tableSchema, duplicateColumnName, duplicateColumnValue, update, dbHost, dbPassword, dbUsername, encryptionKey, encryptionSalt }) {
/**
* Initialize variables
*/
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
/**
* Handle function logic
*/
if (duplicateColumnName && typeof duplicateColumnName === "string") {
const duplicateValue = await dsqlDbHandler({
queryString: `SELECT * FROM \`${tableName}\` WHERE \`${duplicateColumnName}\`=?`,
queryValuesArray: [duplicateColumnValue],
database: dbFullName,
dbHost,
dbPassword,
dbUsername,
});
if (duplicateValue && duplicateValue[0] && !update) {
return null;
} else if (duplicateValue && duplicateValue[0] && update) {
return await updateDb({
dbFullName,
tableName,
data,
tableSchema,
identifierColumnName: duplicateColumnName,
identifierValue: duplicateColumnValue,
dbHost,
dbPassword,
dbUsername,
encryptionKey,
encryptionSalt,
});
}
}
/**
* Declare variables
*
* @description Declare "results" variable
*/
const dataKeys = Object.keys(data);
let insertKeysArray = [];
let insertValuesArray = [];
for (let i = 0; i < dataKeys.length; i++) {
try {
const dataKey = dataKeys[i];
let value = data[dataKey];
const targetFieldSchemaArray = tableSchema ? tableSchema?.fields?.filter((field) => field.fieldName === dataKey) : null;
const targetFieldSchema = targetFieldSchemaArray && targetFieldSchemaArray[0] ? targetFieldSchemaArray[0] : null;
if (!value) continue;
if (targetFieldSchema?.encrypted) {
value = encrypt({ data: value, encryptionKey, encryptionSalt });
}
if (targetFieldSchema?.richText) {
value = sanitizeHtml(value, sanitizeHtmlOptions);
}
insertKeysArray.push("`" + dataKey + "`");
if (typeof value === "object") {
value = JSON.stringify(value);
}
insertValuesArray.push(value);
} catch (error) {
console.log("DSQL: Error in parsing data keys =>", error.message);
continue;
}
}
/** ********************************************** */
insertKeysArray.push("`date_created`");
insertValuesArray.push(Date());
insertKeysArray.push("`date_created_code`");
insertValuesArray.push(Date.now());
/** ********************************************** */
insertKeysArray.push("`date_updated`");
insertValuesArray.push(Date());
insertKeysArray.push("`date_updated_code`");
insertValuesArray.push(Date.now());
/** ********************************************** */
const query = `INSERT INTO \`${tableName}\` (${insertKeysArray.join(",")}) VALUES (${insertValuesArray.map(() => "?").join(",")})`;
const queryValuesArray = insertValuesArray;
const newInsert = await dsqlDbHandler({
queryString: query,
database: dbFullName,
queryValuesArray,
dbHost,
dbPassword,
dbUsername,
encryptionKey,
encryptionSalt,
tableSchema,
});
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
/**
* Return statement
*/
return newInsert;
}
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
module.exports = addDb;

View File

@ -1,80 +0,0 @@
/**
* Imports: Handle imports
*/
const dsqlDbHandler = require("../utils/dsqlDbHandler");
/**
* Delete DB Entry Function
* ==============================================================================
* @description Description
* @async
*
* @param {object} params - An object containing the function parameters.
* @param {string} params.dbFullName - Database full name
* @param {string} params.tableName - Table name
* @param {DSQL_TableSchemaType?} params.tableSchema - Table schema
* @param {string} params.identifierColumnName - Update row identifier column name
* @param {string|number} params.identifierValue - Update row identifier column value
* @param {boolean?} params.update - Update this row if it exists
* @param {string?} params.dbHost - Database host
* @param {string?} params.dbPassword - Database password
* @param {string?} params.dbUsername - Database username
* @param {string?} params.encryptionKey - Encryption key
* @param {string?} params.encryptionSalt - Encryption salt
*
* @returns {Promise<object|null>}
*/
async function deleteDb({ dbFullName, tableName, identifierColumnName, identifierValue, dbHost, dbPassword, dbUsername, encryptionKey, encryptionSalt }) {
try {
/**
* Check if data is valid
*/
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
/**
* Execution
*
* @description
*/
const query = `DELETE FROM ${tableName} WHERE \`${identifierColumnName}\`=?`;
const deletedEntry = await dsqlDbHandler({
queryString: query,
database: dbFullName,
queryValuesArray: [identifierValue],
dbHost,
dbPassword,
dbUsername,
encryptionKey,
encryptionSalt,
});
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
/**
* Return statement
*/
return deletedEntry;
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
} catch (error) {
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
return null;
}
}
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
module.exports = deleteDb;

View File

@ -1,91 +0,0 @@
/**
* Imports: Handle imports
*/
/**
* RAW Query DB Function
* ==============================================================================
* @description Description
* @async
*
* @param {object} params - An object containing the function parameters.
* @param {string} params.dbFullName - Database full name
* @param {string?} params.dbHost - Database host
* @param {string?} params.dbPassword - Database password
* @param {string?} params.dbUsername - Database username
* @param {string?} params.query - Query string
* @param {string[]?} params.valuesArray - Values array
*
* @returns {Promise<object|null>}
*/
async function query({ dbFullName, dbHost, dbPassword, dbUsername, query, valuesArray }) {
/**
* Initialize mysql
*/
const mysql = require("serverless-mysql")({
config: {
host: dbHost,
user: dbUsername,
password: dbPassword,
database: dbFullName.toString().replace(/[^a-z0-9\_\-]/g, ""),
charset: "utf8mb4",
},
});
let results;
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
try {
/**
* Run Query
*/
if (valuesArray && Array.isArray(valuesArray) && valuesArray[0]) {
results = await mysql.query(query, valuesArray);
} else {
results = await mysql.query(query);
}
/**
* Clean up
*/
await mysql.end();
} catch (error) {
/**
* Handle error and clean up
*/
console.log("\x1b[31mDSQL Database Handler ERROR\x1b[0m =>", dbFullName, error.message);
/**
* Clean up
*/
await mysql.end();
/**
* Return error
*/
return error.message;
}
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
/**
* Return statement
*/
if (results) {
return JSON.parse(JSON.stringify(results));
} else {
console.log("\x1b[31mDSQL RAW Database Handler No results returned\x1b[0m =>", results);
return null;
}
}
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
module.exports = query;

View File

@ -1,129 +0,0 @@
/**
* Imports: Handle imports
*/
const encrypt = require("../../functions/encrypt");
const sanitizeHtml = require("sanitize-html");
const sanitizeHtmlOptions = require("../utils/sanitizeHtmlOptions");
const dsqlDbHandler = require("../utils/dsqlDbHandler");
/**
* Update DB Function
* ==============================================================================
* @description Description
* @async
*
* @param {object} params - An object containing the function parameters.
* @param {string} params.dbFullName - Database full name
* @param {string} params.tableName - Table name
* @param {object} params.data - Data to add
* @param {DSQL_TableSchemaType?} params.tableSchema - Table schema
* @param {string} params.identifierColumnName - Update row identifier column name
* @param {string|number} params.identifierValue - Update row identifier column value
* @param {boolean?} params.update - Update this row if it exists
* @param {string?} params.dbHost - Database host
* @param {string?} params.dbPassword - Database password
* @param {string?} params.dbUsername - Database username
* @param {string?} params.encryptionKey - Encryption key
* @param {string?} params.encryptionSalt - Encryption salt
*
* @returns {Promise<object|null>}
*/
async function updateDb({ dbFullName, tableName, data, tableSchema, identifierColumnName, identifierValue, dbHost, dbPassword, dbUsername, encryptionKey, encryptionSalt }) {
/**
* Check if data is valid
*/
if (!data || !Object.keys(data).length) return null;
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
/**
* Declare variables
*
* @description Declare "results" variable
*/
const dataKeys = Object.keys(data);
let updateKeyValueArray = [];
let updateValues = [];
for (let i = 0; i < dataKeys.length; i++) {
try {
const dataKey = dataKeys[i];
let value = data[dataKey];
const targetFieldSchemaArray = tableSchema ? tableSchema?.fields?.filter((field) => field.fieldName === dataKey) : null;
const targetFieldSchema = targetFieldSchemaArray && targetFieldSchemaArray[0] ? targetFieldSchemaArray[0] : null;
if (!value) continue;
if (targetFieldSchema?.encrypted) {
value = encrypt({ data: value, encryptionKey, encryptionSalt });
}
if (targetFieldSchema?.richText) {
value = sanitizeHtml(value, sanitizeHtmlOptions);
}
if (typeof value === "string" && value.match(/^null$/i)) value = "";
if (typeof value === "object") {
value = JSON.stringify(value);
}
if (!value && value != 0) continue;
updateKeyValueArray.push(`\`${dataKey}\`=?`);
updateValues.push(value);
////////////////////////////////////////
////////////////////////////////////////
} catch (error) {
////////////////////////////////////////
////////////////////////////////////////
console.log("DSQL: Error in parsing data keys in update function =>", error.message);
continue;
}
}
////////////////////////////////////////
////////////////////////////////////////
updateKeyValueArray.push(`date_updated='${Date()}'`);
updateKeyValueArray.push(`date_updated_code='${Date.now()}'`);
////////////////////////////////////////
////////////////////////////////////////
const query = `UPDATE ${tableName} SET ${updateKeyValueArray.join(",")} WHERE \`${identifierColumnName}\`=?`;
updateValues.push(identifierValue);
const updatedEntry = await dsqlDbHandler({
queryString: query,
database: dbFullName,
queryValuesArray: updateValues,
dbHost,
dbPassword,
dbUsername,
encryptionKey,
encryptionSalt,
tableSchema,
});
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
/**
* Return statement
*/
return updatedEntry;
}
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
module.exports = updateDb;

View File

@ -1,42 +0,0 @@
/**
* Imports
* ===================================
*/
const addDb = require("./db/addDb");
const query = require("./db/query");
const update = require("./db/updateDb");
const deleteDb = require("./db/deleteDb");
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
/**
* Media Functions Object
* ===================================
*/
const db = {
addDb: addDb,
updateDb: update,
deleteDb: deleteDb,
query: query,
};
/**
* Main Export
* ===================================
*/
const dsqlEngine = {
db: db,
};
// module.exports = dsqlEngine;
////////////////////////////////////////
////////////////////////////////////////
////////////////////////////////////////
// exports.addDb = dsqlEngine.db.addDb;
// exports.updateDb = dsqlEngine.db.updateDb;
// exports.deleteDb = dsqlEngine.db.deleteDb;
// exports.query = dsqlEngine.db.query;

View File

@ -1,163 +0,0 @@
require("dotenv").config({ path: "./../.env" });
/** ********************************************** */
const dbHandler = require("../functions/backend/dbHandler");
const noDatabaseDbHandler = require("../functions/backend/noDatabaseDbHandler");
const varDatabaseDbHandler = require("../functions/backend/varDatabaseDbHandler");
const createTable = require("./utils/createTable");
const updateTable = require("./utils/updateTable");
/** ****************************************************************************** */
/** ****************************************************************************** */
/** ****************************************************************************** */
/** ****************************************************************************** */
/** ****************************************************************************** */
/** ****************************************************************************** */
async function createDbFromSchema({ path }) {
/**
* Grab Schema
*
* @description Grab Schema
*/
const dbSchema = require(path);
for (let i = 0; i < dbSchema.length; i++) {
const database = dbSchema[i];
const { dbFullName, tables } = database;
/** ********************************************** */
// const showDatabases = await noDatabaseDbHandler(`SHOW DATABASES`);
const dbCheck = await noDatabaseDbHandler(`SELECT SCHEMA_NAME AS dbFullName FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '${dbFullName}'`);
if (dbCheck && dbCheck[0]?.dbFullName) {
// Database Exists
} else {
const newDatabase = await noDatabaseDbHandler(`CREATE DATABASE IF NOT EXISTS \`${dbFullName}\` CHARACTER SET utf8mb4 COLLATE utf8mb4_bin`);
}
/** ********************************************** */
/** ********************************************** */
/** ********************************************** */
/**
* Handle Individual Tables
*
* @description Handle Individual Tables
*/
const allTables = await noDatabaseDbHandler(`SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='${dbFullName}'`);
let tableDropped;
for (let tb = 0; tb < allTables.length; tb++) {
const { TABLE_NAME } = allTables[tb];
if (!tables.filter((_table) => _table.tableName === TABLE_NAME)[0]) {
const oldTableFilteredArray = tables.filter((_table) => _table.tableNameOld && _table.tableNameOld === TABLE_NAME);
if (oldTableFilteredArray && oldTableFilteredArray[0]) {
console.log("Renaming Table");
await varDatabaseDbHandler({
queryString: `RENAME TABLE \`${oldTableFilteredArray[0].tableNameOld}\` TO \`${oldTableFilteredArray[0].tableName}\``,
database: dbFullName,
});
} else {
console.log(`Dropping Table from ${dbFullName}`);
await varDatabaseDbHandler({
queryString: `DROP TABLE \`${TABLE_NAME}\``,
database: dbFullName,
});
tableDropped = true;
}
}
}
/** ********************************************** */
/** ********************************************** */
/** ********************************************** */
for (let t = 0; t < tables.length; t++) {
const table = tables[t];
if (tableDropped) continue;
const { tableName, fields, indexes } = table;
const tableCheck = await varDatabaseDbHandler({
queryString: `
SELECT EXISTS (
SELECT
TABLE_NAME
FROM
information_schema.TABLES
WHERE
TABLE_SCHEMA = '${dbFullName}' AND
TABLE_NAME = '${table.tableName}'
) AS tableExists`,
database: dbFullName,
});
/** ********************************************** */
if (tableCheck && tableCheck[0]?.tableExists > 0) {
// Update Existing Table
const updateExistingTable = await updateTable({
dbFullName: dbFullName,
tableName: tableName,
tableInfoArray: fields,
varDatabaseDbHandler,
userId,
dbSchema,
tableIndexes: indexes,
});
if (table.childrenTables && table.childrenTables[0]) {
for (let ch = 0; ch < table.childrenTables.length; ch++) {
const childTable = table.childrenTables[ch];
const updateExistingChildTable = await updateTable({
dbFullName: childTable.dbNameFull,
tableName: childTable.tableName,
tableInfoArray: fields,
varDatabaseDbHandler,
userId,
dbSchema,
tableIndexes: indexes,
clone: true,
});
console.log(updateExistingChildTable);
}
}
/** ********************************************** */
} else {
/** ********************************************** */
// Create New Table
const createNewTable = await createTable({ tableName: tableName, tableInfoArray: fields, varDatabaseDbHandler, dbFullName: dbFullName, dbSchema });
}
/** ********************************************** */
}
}
process.exit();
/** ********************************************** */
/** ********************************************** */
/** ********************************************** */
}
/** ****************************************************************************** */
/** ****************************************************************************** */
/** ****************************************************************************** */
/** ****************************************************************************** */
/** ****************************************************************************** */
const path = process.argv[process.argv.indexOf("--path") + 1];
createDbFromSchema({ path });

View File

@ -1,12 +0,0 @@
/**
* Regular expression to match default fields
*
* @description Regular expression to match default fields
*/
const defaultFieldsRegexp = /^id$|^date_created$|^date_created_code$|^date_created_timestamp$|^date_updated$|^date_updated_code$|^date_updated_timestamp$/;
/** ********************************************** */
/** ********************************************** */
/** ********************************************** */
module.exports = defaultFieldsRegexp;

View File

@ -1,99 +0,0 @@
const fs = require("fs");
const parseDbResults = require("./parseDbResults");
/**
* DB handler for specific database
* ==============================================================================
* @async
* @param {object} params - Single object params
* @param {string} params.queryString - SQL string
* @param {string[]?} params.queryValuesArray - Values Array
* @param {string} params.database - Database name
* @param {DSQL_TableSchemaType?} params.tableSchema - Table schema
* @param {string} params.dbHost - Database host
* @param {string} params.dbUsername - Database username
* @param {string} params.dbPassword - Database password
* @param {string?} params.encryptionKey - Encryption key
* @param {string?} params.encryptionSalt - Encryption salt
*
* @returns {Promise<object[]|null>}
*/
async function dsqlDbHandler({ queryString, queryValuesArray, database, tableSchema, dbHost, dbUsername, dbPassword, encryptionKey, encryptionSalt }) {
const mysql = require("serverless-mysql")({
config: {
host: dbHost,
user: dbUsername,
password: dbPassword,
database: database.toString().replace(/[^a-z0-9\_\-]/g, ""),
charset: "utf8mb4",
},
});
/**
* Declare variables
*
* @description Declare "results" variable
*/
let results;
/**
* Check if query values array is an array
*/
if (!queryString || !queryValuesArray || !Array.isArray(queryValuesArray) || !queryValuesArray[0]) {
return null;
}
/**
* Fetch from db
*
* @description Fetch data from db if no cache
*/
try {
/**
* Run Query
*/
results = await mysql.query(queryString, queryValuesArray);
/**
* Clean up
*/
await mysql.end();
} catch (error) {
/**
* Handle error and clean up
*/
console.log("\x1b[31mDSQL Database Handler ERROR\x1b[0m =>", database, error.message);
/**
* Clean up
*/
await mysql.end();
/**
* Return error
*/
return error.message;
}
/**
* Return results
*
* @description Return results add to cache if "req" param is passed
*/
if (results && tableSchema) {
try {
const unparsedResults = JSON.parse(JSON.stringify(results));
const parsedResults = parseDbResults({ unparsedResults: unparsedResults, tableSchema: tableSchema, encryptionKey, encryptionSalt });
return parsedResults;
} catch (error) {
console.log("\x1b[31mDSQL Database Handler ERROR\x1b[0m =>", database, error.message);
return null;
}
} else if (results) {
return JSON.parse(JSON.stringify(results));
} else {
console.log("\x1b[31mDSQL Database Handler No results returned\x1b[0m =>", results);
return results;
}
}
module.exports = dsqlDbHandler;

View File

@ -1,82 +0,0 @@
const decrypt = require("../../functions/decrypt");
const defaultFieldsRegexp = require("./defaultFieldsRegexp");
/**
* Parse Database results
* ==============================================================================
* @description this function takes a database results array gotten from a DB handler
* function, decrypts encrypted fields, and returns an updated array with no encrypted
* fields
*
* @param {object} params - Single object params
* @param {{}[]} params.unparsedResults - Array of data objects containing Fields(keys)
* and corresponding values of the fields(values)
* @param {DSQL_TableSchemaType} params.tableSchema - Table schema
* @returns {object[]|null}
*/
module.exports = function parseDbResults({ unparsedResults, tableSchema, encryptionKey, encryptionSalt }) {
/**
* Declare variables
*
* @description Declare "results" variable
*/
let parsedResults = [];
/**
* Check if query values array is an array
*/
if (!unparsedResults || !Array.isArray(unparsedResults) || !unparsedResults[0]) {
return unparsedResults;
}
try {
/**
* Declare variables
*
* @description Declare "results" variable
*/
for (let pr = 0; pr < unparsedResults.length; pr++) {
let result = unparsedResults[pr];
let resultFieldNames = Object.keys(result);
for (let i = 0; i < resultFieldNames.length; i++) {
try {
const resultFieldName = resultFieldNames[i];
let resultFieldSchema = tableSchema?.fields[i];
if (resultFieldName?.match(defaultFieldsRegexp)) {
continue;
}
let value = result[resultFieldName];
if (typeof value !== "number" && !value) {
continue;
}
if (resultFieldSchema?.encrypted) {
if (value?.match(/./)) {
result[resultFieldName] = decrypt({ encryptedString: value, encryptionKey, encryptionSalt });
}
}
} catch (error) {
console.log("ERROR in parseDbResults Function =>", error.message);
continue;
}
}
parsedResults.push(result);
}
/**
* Declare variables
*
* @description Declare "results" variable
*/
return parsedResults;
} catch (error) {
console.log("ERROR in parseDbResults Function =>", error.message);
return unparsedResults;
}
};

View File

@ -1,9 +0,0 @@
const sanitizeHtmlOptions = {
allowedTags: ["b", "i", "em", "strong", "a", "p", "span", "ul", "ol", "li", "h1", "h2", "h3", "h4", "h5", "h6", "img"],
allowedAttributes: {
a: ["href"],
img: ["src", "alt", "width", "height", "class", "style"],
},
};
module.exports = sanitizeHtmlOptions;

View File

@ -1,6 +1,6 @@
{ {
"name": "datasquirel", "name": "datasquirel",
"version": "1.1.82", "version": "1.1.83",
"description": "Cloud-based SQL data management tool", "description": "Cloud-based SQL data management tool",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {

View File

@ -14,7 +14,7 @@ const parseCookies = require("../utils/functions/parseCookies");
/** ****************************************************************************** */ /** ****************************************************************************** */
/** /**
* @typedef {object} FunctionReturn * @typedef {object} AuthenticatedUserObject
* @property {boolean} success - Did the function run successfully? * @property {boolean} success - Did the function run successfully?
* @property {{ * @property {{
* id: number, * id: number,
@ -38,9 +38,11 @@ const parseCookies = require("../utils/functions/parseCookies");
*/ */
/** /**
* Authenticate User from request
* ============================================================================== * ==============================================================================
* Main Function * @description This Function takes in a request object and returns a user object
* ============================================================================== * with the user's data
*
* @param {Object} params - Arg * @param {Object} params - Arg
* @param {Object} params.request - Http request object * @param {Object} params.request - Http request object
* @param {String} params.encryptionKey - Encryption Key * @param {String} params.encryptionKey - Encryption Key
@ -48,7 +50,7 @@ const parseCookies = require("../utils/functions/parseCookies");
* @param {String} params.level - Optional. "Deep" value indicates an extra layer of security * @param {String} params.level - Optional. "Deep" value indicates an extra layer of security
* @param {String} params.database - Database Name * @param {String} params.database - Database Name
* *
* @returns { FunctionReturn } * @returns { AuthenticatedUserObject }
*/ */
function userAuth({ request, encryptionKey, encryptionSalt, level, database }) { function userAuth({ request, encryptionKey, encryptionSalt, level, database }) {
try { try {

View File

@ -50,11 +50,6 @@ function sanitizeSql(input, spaces) {
//////////////////////////////////////// ////////////////////////////////////////
} }
// if (input?.toString()?.match(/\'|\"/)) {
// console.log("TEXT containing commas =>", input);
// return "";
// }
//////////////////////////////////////// ////////////////////////////////////////
//////////////////////////////////////// ////////////////////////////////////////
//////////////////////////////////////// ////////////////////////////////////////

View File

@ -19,8 +19,7 @@ const https = require("https");
*/ */
/** /**
* ============================================================================== * Make a get request to Datasquirel API
* Main Function
* ============================================================================== * ==============================================================================
* @async * @async
* *

View File

@ -1,7 +1,5 @@
/** /**
* ==============================================================================
* Imports * Imports
* ==============================================================================
*/ */
const https = require("https"); const https = require("https");
@ -20,7 +18,7 @@ const https = require("https");
/** /**
* @typedef {object} PostDataPayload * @typedef {object} PostDataPayload
* @property {string} action - "insert" | "update" | "delete" * @property {"insert" | "update" | "delete"} action - The target action to take
* @property {string} table - Table name(slug) eg "blog_posts" * @property {string} table - Table name(slug) eg "blog_posts"
* @property {string} identifierColumnName - Table identifier field name => eg. "id" OR "email" * @property {string} identifierColumnName - Table identifier field name => eg. "id" OR "email"
* @property {string} identifierValue - Corresponding value of the selected field name => This * @property {string} identifierValue - Corresponding value of the selected field name => This
@ -35,8 +33,7 @@ const https = require("https");
*/ */
/** /**
* ============================================================================== * Make a post request to Datasquirel API
* Main Function
* ============================================================================== * ==============================================================================
* @async * @async
* *