From cd22ca442d4cb71e0d055d0156eab83b6d1c16f7 Mon Sep 17 00:00:00 2001 From: Tben <52448020+BenjaminToby@users.noreply.github.com> Date: Wed, 3 May 2023 07:16:29 +0100 Subject: [PATCH] first commit --- index.js | 29 +++++++++++++++ package.json | 28 +++++++++++++++ utils/get.js | 78 ++++++++++++++++++++++++++++++++++++++++ utils/post.js | 84 +++++++++++++++++++++++++++++++++++++++++++ utils/upload-image.js | 81 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 300 insertions(+) create mode 100644 index.js create mode 100644 package.json create mode 100644 utils/get.js create mode 100644 utils/post.js create mode 100644 utils/upload-image.js diff --git a/index.js b/index.js new file mode 100644 index 0000000..81e2f7e --- /dev/null +++ b/index.js @@ -0,0 +1,29 @@ +/** + * ============================================================================== + * Imports + * ============================================================================== + */ +const get = require("./utils/get"); + +/** ****************************************************************************** */ +/** ****************************************************************************** */ +/** ****************************************************************************** */ +/** ****************************************************************************** */ +/** ****************************************************************************** */ +/** ****************************************************************************** */ + +/** + * ============================================================================== + * Main Function + * ============================================================================== + * @param {Object} mailObject - foundUser if any + */ +const dsql = { + get: get, +}; + +module.exports = dsql; + +/** ********************************************** */ +/** ********************************************** */ +/** ********************************************** */ diff --git a/package.json b/package.json new file mode 100644 index 0000000..210d473 --- /dev/null +++ b/package.json @@ -0,0 +1,28 @@ +{ + "name": "dsql", + "version": "1.0.0", + "description": "Cloud-based SQL data management tool", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/BenjaminToby/dsql.git" + }, + "keywords": [ + "SQL", + "Cloud", + "Cloud", + "Storage", + "API", + "Data", + "Storage" + ], + "author": "Benjamin Toby", + "license": "ISC", + "bugs": { + "url": "https://github.com/BenjaminToby/dsql/issues" + }, + "homepage": "https://github.com/BenjaminToby/dsql#readme" +} diff --git a/utils/get.js b/utils/get.js new file mode 100644 index 0000000..bb5eb42 --- /dev/null +++ b/utils/get.js @@ -0,0 +1,78 @@ +/** + * ============================================================================== + * Imports + * ============================================================================== + */ +const https = require("https"); + +/** ****************************************************************************** */ +/** ****************************************************************************** */ +/** ****************************************************************************** */ +/** ****************************************************************************** */ +/** ****************************************************************************** */ +/** ****************************************************************************** */ + +/** + * ============================================================================== + * Main Function + * ============================================================================== + * @param {String} key - API Key + * @param {String} query - SQL query + */ +module.exports = async function ({ key, db, query }) { + /** + * Make https request + * + * @description make a request to datasquirel.com + */ + const httpResponse = await new Promise((resolve, reject) => { + https + .request( + { + method: "GET", + headers: { + "Content-Type": "application/json", + Authorization: key, + }, + port: 443, + hostname: "datasquirel.com", + path: `/api/query/get?db=${db}&query=${query + .replace(/\n|\r|\n\r/g, "") + .replace(/ {2,}/g, " ") + .replace(/ /g, "+")}`, + }, + + /** + * Callback Function + * + * @description https request callback + */ + (response) => { + var str = ""; + + response.on("data", function (chunk) { + str += chunk; + }); + + response.on("end", function () { + resolve(JSON.parse(str)); + }); + + response.on("error", (err) => { + reject(err); + }); + } + ) + .end(); + }); + + /** ********************************************** */ + /** ********************************************** */ + /** ********************************************** */ + + return httpResponse; +}; + +/** ********************************************** */ +/** ********************************************** */ +/** ********************************************** */ diff --git a/utils/post.js b/utils/post.js new file mode 100644 index 0000000..bb59d22 --- /dev/null +++ b/utils/post.js @@ -0,0 +1,84 @@ +/** + * ============================================================================== + * Imports + * ============================================================================== + */ +const https = require("https"); + +/** ****************************************************************************** */ +/** ****************************************************************************** */ +/** ****************************************************************************** */ +/** ****************************************************************************** */ +/** ****************************************************************************** */ +/** ****************************************************************************** */ + +/** + * ============================================================================== + * Main Function + * ============================================================================== + * @param {String} key - API Key + * @param {String | Object} payload - SQL query String or Request Object. Eg. { + action: "insert | update | delete", + data: { + user_id: user.id, + user_first_name: user.first_name, + user_last_name: user.last_name, + }, + table: "posts", + } + */ +module.exports = async function ({ key, payload }) { + /** + * Make https request + * + * @description make a request to datasquirel.com + */ + const httpResponse = await new Promise((resolve, reject) => { + https + .request( + { + method: "POST", + headers: { + "Content-Type": "application/json", + Authorization: key, + }, + port: 443, + hostname: "datasquirel.com", + path: `/api/query/post`, + }, + + /** + * Callback Function + * + * @description https request callback + */ + (response) => { + var str = ""; + + response.on("data", function (chunk) { + str += chunk; + }); + + response.on("end", function () { + resolve(JSON.parse(str)); + }); + + response.on("error", (err) => { + reject(err); + }); + } + ) + .write(payload) + .end(); + }); + + /** ********************************************** */ + /** ********************************************** */ + /** ********************************************** */ + + return httpResponse; +}; + +/** ********************************************** */ +/** ********************************************** */ +/** ********************************************** */ diff --git a/utils/upload-image.js b/utils/upload-image.js new file mode 100644 index 0000000..920dd2e --- /dev/null +++ b/utils/upload-image.js @@ -0,0 +1,81 @@ +/** + * ============================================================================== + * Imports + * ============================================================================== + */ +const https = require("https"); + +/** ****************************************************************************** */ +/** ****************************************************************************** */ +/** ****************************************************************************** */ +/** ****************************************************************************** */ +/** ****************************************************************************** */ +/** ****************************************************************************** */ + +/** + * ============================================================================== + * Main Function + * ============================================================================== + * @param {String} key - API Key + * @param {String} payload - Image Data Eg. { + imageData: imageBase64, + imageName: `cast_cord_user_${newUser.payload.insertId}`, + mimeType: "jpg", + thumbnailSize: 120, + } + */ +module.exports = async function ({ key, payload }) { + /** + * Make https request + * + * @description make a request to datasquirel.com + */ + const httpResponse = await new Promise((resolve, reject) => { + https + .request( + { + method: "POST", + headers: { + "Content-Type": "application/json", + Authorization: key, + }, + port: 443, + hostname: "datasquirel.com", + path: `/api/query/post`, + }, + + /** + * Callback Function + * + * @description https request callback + */ + (response) => { + var str = ""; + + response.on("data", function (chunk) { + str += chunk; + }); + + response.on("end", function () { + resolve(JSON.parse(str)); + }); + + response.on("error", (err) => { + reject(err); + }); + } + ) + .write(payload) + .end(); + }); + + /** ********************************************** */ + /** ********************************************** */ + /** ********************************************** */ + + return httpResponse; +}; + +/** ********************************************** */ +/** ********************************************** */ +/** ********************************************** */