Update types

This commit is contained in:
Benjamin Toby 2024-10-21 08:05:18 +01:00
parent fabf2945d7
commit d774e8d35d
6 changed files with 100 additions and 59 deletions

View File

@ -2,31 +2,16 @@
const runQuery = require("./utils/runQuery"); const runQuery = require("./utils/runQuery");
/**
* @typedef {Object} LocalPostReturn
* @property {boolean} success - Did the function run successfully?
* @property {*} [payload] - GET request results
* @property {string} [msg] - Message
* @property {string} [error] - Error Message
*/
/**
* @typedef {Object} LocalPostQueryObject
* @property {string | import("../../utils/post").PostDataPayload} query - Table Name
* @property {string} [tableName] - Table Name
* @property {string[]} [queryValues] - GET request results
*/
/** /**
* Make a get request to Datasquirel API * Make a get request to Datasquirel API
* ============================================================================== * ==============================================================================
* @async * @async
* *
* @param {Object} params - Single object passed * @param {Object} params - Single object passed
* @param {LocalPostQueryObject} params.options - SQL Query * @param {import("../../package-shared/types").LocalPostQueryObject} params.options - SQL Query
* @param {import("../../package-shared/types").DSQL_DatabaseSchemaType | undefined} [params.dbSchema] - Name of the table to query * @param {import("../../package-shared/types").DSQL_DatabaseSchemaType | undefined} [params.dbSchema] - Name of the table to query
* *
* @returns { Promise<LocalPostReturn> } - Return Object * @returns { Promise<import("../../package-shared/types").LocalPostReturn> } - Return Object
*/ */
async function localPost({ options, dbSchema }) { async function localPost({ options, dbSchema }) {
try { try {
@ -83,7 +68,6 @@ async function localPost({ options, dbSchema }) {
return { return {
success: false, success: false,
payload: null,
error: error.message, error: error.message,
}; };
} }
@ -95,7 +79,6 @@ async function localPost({ options, dbSchema }) {
return { return {
success: false, success: false,
payload: null,
msg: "Something went wrong!", msg: "Something went wrong!",
}; };

View File

@ -6,14 +6,6 @@ const varDatabaseDbHandler = require("../engine/utils/varDatabaseDbHandler");
const addDbEntry = require("../query/utils/addDbEntry"); const addDbEntry = require("../query/utils/addDbEntry");
const runQuery = require("../query/utils/runQuery"); const runQuery = require("../query/utils/runQuery");
/**
* @typedef {Object} LocalPostReturn
* @property {boolean} success - Did the function run successfully?
* @property {*} [payload] - GET request results
* @property {string} [msg] - Message
* @property {string} [error] - Error Message
*/
/** /**
* Make a get request to Datasquirel API * Make a get request to Datasquirel API
* ============================================================================== * ==============================================================================
@ -25,7 +17,7 @@ const runQuery = require("../query/utils/runQuery");
* @param {string} [params.encryptionKey] * @param {string} [params.encryptionKey]
* @param {string} [params.encryptionSalt] * @param {string} [params.encryptionSalt]
* *
* @returns { Promise<LocalPostReturn> } - Return Object * @returns { Promise<import("../../package-shared/types").AddUserFunctionReturn> } - Return Object
*/ */
async function localAddUser({ async function localAddUser({
payload, payload,
@ -50,7 +42,7 @@ async function localAddUser({
if (!payload?.password) { if (!payload?.password) {
return { return {
success: false, success: false,
payload: `Password is required to create an account`, msg: `Password is required to create an account`,
}; };
} }
@ -79,7 +71,7 @@ async function localAddUser({
if (!fields) { if (!fields) {
return { return {
success: false, success: false,
payload: "Could not create users table", msg: "Could not create users table",
}; };
} }
@ -100,7 +92,7 @@ async function localAddUser({
if (invalidField) { if (invalidField) {
return { return {
success: false, success: false,
payload: `${invalidField} is not a valid field!`, msg: `${invalidField} is not a valid field!`,
}; };
} }
@ -126,7 +118,7 @@ async function localAddUser({
if (existingUser && existingUser[0]) { if (existingUser && existingUser[0]) {
return { return {
success: false, success: false,
payload: "User Already Exists", msg: "User Already Exists",
}; };
} }
@ -157,7 +149,7 @@ async function localAddUser({
} else { } else {
return { return {
success: false, success: false,
payload: "Could not create user", msg: "Could not create user",
}; };
} }
@ -168,7 +160,6 @@ async function localAddUser({
return { return {
success: false, success: false,
payload: null,
msg: "Something went wrong!", msg: "Something went wrong!",
}; };

View File

@ -315,3 +315,43 @@ export interface GetReturn {
error?: string; error?: string;
schema?: DSQL_TableSchemaType; schema?: DSQL_TableSchemaType;
} }
interface PostReturn {
success: boolean;
payload?: PostInsertReturn | Object[] | string;
}
interface PostInsertReturn {
fieldCount: number;
affectedRows: number;
insertId: number;
serverStatus: number;
warningCount: number;
message: string;
protocol41: boolean;
changedRows: number;
}
interface PostDataPayload {
action: "insert" | "update" | "delete";
table: string;
data?: object;
identifierColumnName?: string;
identifierValue?: string;
duplicateColumnName?: string;
duplicateColumnValue?: string;
update?: boolean;
}
interface LocalPostReturn {
success: boolean;
payload?: PostInsertReturn | Object[] | string;
msg?: string;
error?: string;
}
interface LocalPostQueryObject {
query: string | import("../../package-shared/types").PostDataPayload;
tableName?: string;
queryValues?: string[];
}

View File

@ -353,3 +353,52 @@ const http = require("http");
* @property {string} [error] - Error Message * @property {string} [error] - Error Message
* @property {DSQL_TableSchemaType} [schema] - Error Message * @property {DSQL_TableSchemaType} [schema] - Error Message
*/ */
/**
* @typedef {Object} PostReturn
* @property {boolean} success - Did the function run successfully?
* @property { PostInsertReturn | Object[] | string } [payload] - The Y Coordinate
*/
/**
* @typedef {object} PostInsertReturn
* @property {number} fieldCount
* @property {number} affectedRows
* @property {number} insertId
* @property {number} serverStatus
* @property {number} warningCount
* @property {string} message
* @property {boolean} protocol41
* @property {number} changedRows
*/
/**
* @typedef {object} PostDataPayload
* @property {"insert" | "update" | "delete"} action - The target action to take
* @property {string} table - Table name(slug) eg "blog_posts"
* @property {object} [data] - Table insert payload object => This must have keys that match
* table fields
* @property {string?} [identifierColumnName] - Table identifier field name => eg. "id" OR "email"
* @property {string?} [identifierValue] - Corresponding value of the selected field name => This
* checks identifies a the target row for "update" or "delete". Not needed for "insert"
* @property {string?} [duplicateColumnName] - Duplicate column name to check for
* @property {string?} [duplicateColumnValue] - Duplicate column value to match. If no "update" param
* provided, function will return null
* @property {boolean?} [update] - Should the "insert" action update the existing entry if indeed
* the entry with "duplicateColumnValue" exists?
*/
/**
* @typedef {Object} LocalPostReturn
* @property {boolean} success - Did the function run successfully?
* @property { PostInsertReturn | Object[] | string } [payload] - GET request results
* @property {string} [msg] - Message
* @property {string} [error] - Error Message
*/
/**
* @typedef {Object} LocalPostQueryObject
* @property {string | import("../../package-shared/types").PostDataPayload} query - Table Name
* @property {string} [tableName] - Table Name
* @property {string[]} [queryValues] - GET request results
*/

View File

@ -1,6 +1,6 @@
{ {
"name": "datasquirel", "name": "datasquirel",
"version": "2.2.6", "version": "2.2.7",
"description": "Cloud-based SQL data management tool", "description": "Cloud-based SQL data management tool",
"main": "index.js", "main": "index.js",
"bin": { "bin": {

View File

@ -16,28 +16,6 @@ const localPost = require("../engine/query/post");
/** ****************************************************************************** */ /** ****************************************************************************** */
/** ****************************************************************************** */ /** ****************************************************************************** */
/**
* @typedef {Object} PostReturn
* @property {boolean} success - Did the function run successfully?
* @property {(Object[]|string)} [payload=[]] - The Y Coordinate
*/
/**
* @typedef {object} PostDataPayload
* @property {"insert" | "update" | "delete"} action - The target action to take
* @property {string} table - Table name(slug) eg "blog_posts"
* @property {object} [data] - Table insert payload object => This must have keys that match
* table fields
* @property {string?} [identifierColumnName] - Table identifier field name => eg. "id" OR "email"
* @property {string?} [identifierValue] - Corresponding value of the selected field name => This
* checks identifies a the target row for "update" or "delete". Not needed for "insert"
* @property {string?} [duplicateColumnName] - Duplicate column name to check for
* @property {string?} [duplicateColumnValue] - Duplicate column value to match. If no "update" param
* provided, function will return null
* @property {boolean?} [update] - Should the "insert" action update the existing entry if indeed
* the entry with "duplicateColumnValue" exists?
*/
/** /**
* Make a post request to Datasquirel API * Make a post request to Datasquirel API
* ============================================================================== * ==============================================================================
@ -46,11 +24,11 @@ const localPost = require("../engine/query/post");
* @param {Object} params - Single object passed * @param {Object} params - Single object passed
* @param {string} [params.key] - FULL ACCESS API Key * @param {string} [params.key] - FULL ACCESS API Key
* @param {string} [params.database] - Database Name * @param {string} [params.database] - Database Name
* @param {PostDataPayload | string} params.query - SQL query String or Request Object * @param {import("../package-shared/types").PostDataPayload | string} params.query - SQL query String or Request Object
* @param {any[]} [params.queryValues] - Query Values if using "?" placeholders * @param {any[]} [params.queryValues] - Query Values if using "?" placeholders
* @param {string} [params.tableName] - Name of the table to query * @param {string} [params.tableName] - Name of the table to query
* *
* @returns { Promise<PostReturn> } - Return Object * @returns { Promise<import("../package-shared/types").PostReturn> } - Return Object
*/ */
async function post({ key, query, queryValues, database, tableName }) { async function post({ key, query, queryValues, database, tableName }) {
const scheme = process.env.DSQL_HTTP_SCHEME; const scheme = process.env.DSQL_HTTP_SCHEME;