datasquirel/engine/query/post.js

82 lines
2.3 KiB
JavaScript
Raw Normal View History

2023-09-21 14:00:04 +00:00
// @ts-check
2024-11-06 06:26:23 +00:00
const runQuery = require("../../package-shared/functions/backend/db/runQuery");
2023-09-21 14:00:04 +00:00
/**
* Make a get request to Datasquirel API
* ==============================================================================
* @async
*
* @param {Object} params - Single object passed
2024-11-06 11:23:58 +00:00
* @param {import("../../package-shared/types").LocalPostQueryObject} params.options
* @param {import("../../package-shared/types").DSQL_DatabaseSchemaType | undefined} [params.dbSchema]
2023-09-21 14:00:04 +00:00
*
2024-11-06 11:23:58 +00:00
* @returns { Promise<import("../../package-shared/types").LocalPostReturn> }
2023-09-21 14:00:04 +00:00
*/
async function localPost({ options, dbSchema }) {
try {
/**
* Grab Body
*/
const { query, tableName, queryValues } = options;
const dbFullName = process.env.DSQL_DB_NAME || "";
/**
* Input Validation
*
* @description Input Validation
*/
2024-10-14 06:49:01 +00:00
if (
typeof query === "string" &&
query?.match(/^create |^alter |^drop /i)
) {
2023-09-21 14:00:04 +00:00
return { success: false, msg: "Wrong Input" };
}
2024-10-14 06:49:01 +00:00
if (
typeof query === "object" &&
query?.action?.match(/^create |^alter |^drop /i)
) {
2023-09-21 14:00:04 +00:00
return { success: false, msg: "Wrong Input" };
}
/**
* Create new user folder and file
*
* @description Create new user folder and file
*/
try {
let { result, error } = await runQuery({
dbFullName: dbFullName,
query: query,
dbSchema: dbSchema,
queryValuesArray: queryValues,
tableName,
2024-11-06 06:26:23 +00:00
local: true,
2023-09-21 14:00:04 +00:00
});
if (error) throw error;
return {
success: true,
payload: result,
error: error,
};
} catch (/** @type {*} */ error) {
return {
success: false,
error: error.message,
};
}
} catch (/** @type {*} */ error) {
console.log("Error in local post Request =>", error.message);
return {
success: false,
msg: "Something went wrong!",
};
}
}
module.exports = localPost;