bapig
Version:
Welcome to BAPIG, a powerful backend solution designed to streamline your development process. With over 40 built-in functionalities, BAPIG simplifies CRUD operations, facilitates authentication and encryption, handles communication tasks, and much more.
1,041 lines (1,040 loc) • 61.5 kB
JavaScript
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.router = void 0;
// Import required dependencies and modules
var express_1 = require("express");
var fs_1 = __importDefault(require("fs"));
var path_1 = __importDefault(require("path"));
var markdown_it_1 = __importDefault(require("markdown-it"));
var controllers_1 = require("../controllers");
var generateOTP_1 = require("../controllers/otp/generateOTP");
var helpers_1 = require("../helpers");
var fast_web_kit_1 = require("fast-web-kit");
// Initialize Express router
var router = (0, express_1.Router)();
exports.router = router;
// Route to display home page or README content
router.get('/', function (_request, response) {
try {
var responseText = "<h1>BAPIG backend server</h1>";
var readmeFilePath = path_1.default.join(__dirname, '../../README.MD');
var readmeContent = fs_1.default.readFileSync(readmeFilePath, 'utf8');
if (readmeContent) {
var htmlContent = new markdown_it_1.default().render(readmeContent);
response.send(htmlContent);
}
else {
response.send(responseText);
}
}
catch (error) {
sendErrorResponse(response, error);
}
});
// Route to create a single document
router.post('/create', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var requestData, result, _a, _b, error_1;
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
_c.trys.push([0, 5, , 6]);
requestData = helpers_1.hasEnableEncryption ? (0, helpers_1.decrypt)(request.body) : request.body;
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.createSingleDocument(requestData)];
case 1:
_a = _b.apply(void 0, [_c.sent()]);
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, controllers_1.controllers.createSingleDocument(requestData)];
case 3:
_a = _c.sent();
_c.label = 4;
case 4:
result = _a;
response.status(200).json(result);
return [3 /*break*/, 6];
case 5:
error_1 = _c.sent();
sendErrorResponse(response, error_1);
return [3 /*break*/, 6];
case 6: return [2 /*return*/];
}
});
}); });
// Route to bulk create documents
router.post('/bulk-create', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var requestData, result, _a, _b, error_2;
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
_c.trys.push([0, 5, , 6]);
requestData = helpers_1.hasEnableEncryption ? (0, helpers_1.decrypt)(request.body) : request.body;
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.documentBulkCreate(requestData)];
case 1:
_a = _b.apply(void 0, [_c.sent()]);
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, controllers_1.controllers.documentBulkCreate(requestData)];
case 3:
_a = _c.sent();
_c.label = 4;
case 4:
result = _a;
response.status(200).json(result);
return [3 /*break*/, 6];
case 5:
error_2 = _c.sent();
sendErrorResponse(response, error_2);
return [3 /*break*/, 6];
case 6: return [2 /*return*/];
}
});
}); });
// Route to read a single document
router.get('/read', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var requestData, result, _a, _b, error_3;
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
_c.trys.push([0, 5, , 6]);
requestData = helpers_1.hasEnableEncryption ? (0, helpers_1.decryptQuery)(request.query) : request.query;
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.getSingleDocument(requestData)];
case 1:
_a = _b.apply(void 0, [_c.sent()]);
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, controllers_1.controllers.getSingleDocument(requestData)];
case 3:
_a = _c.sent();
_c.label = 4;
case 4:
result = _a;
response.status(200).json(result);
return [3 /*break*/, 6];
case 5:
error_3 = _c.sent();
sendErrorResponse(response, error_3);
return [3 /*break*/, 6];
case 6: return [2 /*return*/];
}
});
}); });
// Route to update a single document
router.put('/update', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var requestData, result, _a, _b, error_4;
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
_c.trys.push([0, 5, , 6]);
requestData = helpers_1.hasEnableEncryption ? (0, helpers_1.decrypt)(request.body) : request.body;
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.updateSingleDocument(requestData)];
case 1:
_a = _b.apply(void 0, [_c.sent()]);
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, controllers_1.controllers.updateSingleDocument(requestData)];
case 3:
_a = _c.sent();
_c.label = 4;
case 4:
result = _a;
response.status(200).json(result);
return [3 /*break*/, 6];
case 5:
error_4 = _c.sent();
sendErrorResponse(response, error_4);
return [3 /*break*/, 6];
case 6: return [2 /*return*/];
}
});
}); });
// Route to bulk update documents
router.put('/bulk-update', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var requestData, result, _a, _b, error_5;
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
_c.trys.push([0, 5, , 6]);
requestData = helpers_1.hasEnableEncryption ? (0, helpers_1.decrypt)(request.body) : request.body;
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.documentBulkUpdate(requestData)];
case 1:
_a = _b.apply(void 0, [_c.sent()]);
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, controllers_1.controllers.documentBulkUpdate(requestData)];
case 3:
_a = _c.sent();
_c.label = 4;
case 4:
result = _a;
response.status(200).json(result);
return [3 /*break*/, 6];
case 5:
error_5 = _c.sent();
sendErrorResponse(response, error_5);
return [3 /*break*/, 6];
case 6: return [2 /*return*/];
}
});
}); });
// Route to delete a single document
router.delete('/delete', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var requestData, result, _a, _b, error_6;
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
_c.trys.push([0, 5, , 6]);
requestData = helpers_1.hasEnableEncryption ? (0, helpers_1.decryptQuery)(request.query) : request.query;
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.deleteSingleDocument(requestData)];
case 1:
_a = _b.apply(void 0, [_c.sent()]);
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, controllers_1.controllers.deleteSingleDocument(requestData)];
case 3:
_a = _c.sent();
_c.label = 4;
case 4:
result = _a;
response.status(200).json(result);
return [3 /*break*/, 6];
case 5:
error_6 = _c.sent();
sendErrorResponse(response, error_6);
return [3 /*break*/, 6];
case 6: return [2 /*return*/];
}
});
}); });
// Route to bulk delete documents
router.delete('/bulk-delete', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var queries, result, _a, _b, error_7;
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
_c.trys.push([0, 5, , 6]);
queries = request.query.queries;
queries = fast_web_kit_1.string.isValidJSON(queries) ? fast_web_kit_1.object.toObject(queries) : queries;
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.documentBulkDelete((0, helpers_1.convertToArray)(queries))];
case 1:
_a = _b.apply(void 0, [_c.sent()]);
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, controllers_1.controllers.documentBulkDelete(queries)];
case 3:
_a = _c.sent();
_c.label = 4;
case 4:
result = _a;
response.status(200).json(result);
return [3 /*break*/, 6];
case 5:
error_7 = _c.sent();
sendErrorResponse(response, error_7);
return [3 /*break*/, 6];
case 6: return [2 /*return*/];
}
});
}); });
// Route to list documents
router.get('/list', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var requestData, result, _a, _b, error_8;
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
_c.trys.push([0, 5, , 6]);
requestData = helpers_1.hasEnableEncryption ? (0, helpers_1.decryptQuery)(request.query) : request.query;
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.listDocuments(requestData)];
case 1:
_a = _b.apply(void 0, [_c.sent()]);
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, controllers_1.controllers.listDocuments(requestData)];
case 3:
_a = _c.sent();
_c.label = 4;
case 4:
result = _a;
response.status(200).json(result);
return [3 /*break*/, 6];
case 5:
error_8 = _c.sent();
sendErrorResponse(response, error_8);
return [3 /*break*/, 6];
case 6: return [2 /*return*/];
}
});
}); });
// Route to count documents
router.get('/count', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var requestData, result, _a, _b, error_9;
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
_c.trys.push([0, 5, , 6]);
requestData = helpers_1.hasEnableEncryption ? (0, helpers_1.decryptQuery)(request.query) : request.query;
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.countDocuments(requestData)];
case 1:
_a = _b.apply(void 0, [_c.sent()]);
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, controllers_1.controllers.countDocuments(requestData)];
case 3:
_a = _c.sent();
_c.label = 4;
case 4:
result = _a;
response.status(200).json(result);
return [3 /*break*/, 6];
case 5:
error_9 = _c.sent();
sendErrorResponse(response, error_9);
return [3 /*break*/, 6];
case 6: return [2 /*return*/];
}
});
}); });
// Route to list all documents
router.get('/list-all', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var requestData, result, _a, _b, error_10;
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
_c.trys.push([0, 5, , 6]);
requestData = helpers_1.hasEnableEncryption ? (0, helpers_1.decryptQuery)(request.query) : request.query;
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.listAllDocuments(requestData)];
case 1:
_a = _b.apply(void 0, [_c.sent()]);
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, controllers_1.controllers.listAllDocuments(requestData)];
case 3:
_a = _c.sent();
_c.label = 4;
case 4:
result = _a;
response.status(200).json(result);
return [3 /*break*/, 6];
case 5:
error_10 = _c.sent();
sendErrorResponse(response, error_10);
return [3 /*break*/, 6];
case 6: return [2 /*return*/];
}
});
}); });
// Route to validate a document
router.get('/validate', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var requestData, result, _a, _b, error_11;
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
_c.trys.push([0, 5, , 6]);
requestData = helpers_1.hasEnableEncryption ? (0, helpers_1.decryptQuery)(request.query) : request.query;
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.validateDocument(requestData)];
case 1:
_a = _b.apply(void 0, [_c.sent()]);
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, controllers_1.controllers.validateDocument(requestData)];
case 3:
_a = _c.sent();
_c.label = 4;
case 4:
result = _a;
response.status(200).json(result);
return [3 /*break*/, 6];
case 5:
error_11 = _c.sent();
sendErrorResponse(response, error_11);
return [3 /*break*/, 6];
case 6: return [2 /*return*/];
}
});
}); });
// creating field encryption
router.post('/create-field-encryption', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var _a, _b, _c, _d, _e, error_12;
return __generator(this, function (_f) {
switch (_f.label) {
case 0:
_f.trys.push([0, 5, , 6]);
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = (_a = response.status(200)).json;
_c = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.createDocumentFieldEncryption((0, helpers_1.decrypt)(request.body))];
case 1:
_b.apply(_a, [_c.apply(void 0, [_f.sent()])]);
return [3 /*break*/, 4];
case 2:
_e = (_d = response.status(200)).json;
return [4 /*yield*/, controllers_1.controllers.createDocumentFieldEncryption(request.body)];
case 3:
_e.apply(_d, [_f.sent()]);
_f.label = 4;
case 4: return [3 /*break*/, 6];
case 5:
error_12 = _f.sent();
sendErrorResponse(response, error_12);
return [3 /*break*/, 6];
case 6: return [2 /*return*/];
}
});
}); });
// authenticating
router.post('/authenticate', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var _a, _b, _c, _d, _e, error_13;
return __generator(this, function (_f) {
switch (_f.label) {
case 0:
_f.trys.push([0, 5, , 6]);
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = (_a = response.status(200)).json;
_c = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.authenticate((0, helpers_1.decrypt)(request.body))];
case 1:
_b.apply(_a, [_c.apply(void 0, [_f.sent()])]);
return [3 /*break*/, 4];
case 2:
_e = (_d = response.status(200)).json;
return [4 /*yield*/, controllers_1.controllers.authenticate(request.body)];
case 3:
_e.apply(_d, [_f.sent()]);
_f.label = 4;
case 4: return [3 /*break*/, 6];
case 5:
error_13 = _f.sent();
sendErrorResponse(response, error_13);
return [3 /*break*/, 6];
case 6: return [2 /*return*/];
}
});
}); });
// validating field encryption
router.get('/validate-field-encryption', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var _a, _b, _c, _d, _e, error_14;
return __generator(this, function (_f) {
switch (_f.label) {
case 0:
_f.trys.push([0, 5, , 6]);
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = (_a = response.status(200)).json;
_c = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.validateDocumentFieldEncryption((0, helpers_1.decryptQuery)(request.query))];
case 1:
_b.apply(_a, [_c.apply(void 0, [_f.sent()])]);
return [3 /*break*/, 4];
case 2:
_e = (_d = response.status(200)).json;
return [4 /*yield*/, controllers_1.controllers.validateDocumentFieldEncryption(request.query)];
case 3:
_e.apply(_d, [_f.sent()]);
_f.label = 4;
case 4: return [3 /*break*/, 6];
case 5:
error_14 = _f.sent();
sendErrorResponse(response, error_14);
return [3 /*break*/, 6];
case 6: return [2 /*return*/];
}
});
}); });
// changing field encryption
router.put('/change-field-encryption', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var _a, _b, _c, _d, _e, error_15;
return __generator(this, function (_f) {
switch (_f.label) {
case 0:
_f.trys.push([0, 5, , 6]);
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = (_a = response.status(200)).json;
_c = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.changeDocumentFieldEncryption((0, helpers_1.decrypt)(request.body))];
case 1:
_b.apply(_a, [_c.apply(void 0, [_f.sent()])]);
return [3 /*break*/, 4];
case 2:
_e = (_d = response.status(200)).json;
return [4 /*yield*/, controllers_1.controllers.changeDocumentFieldEncryption(request.body)];
case 3:
_e.apply(_d, [_f.sent()]);
_f.label = 4;
case 4: return [3 /*break*/, 6];
case 5:
error_15 = _f.sent();
sendErrorResponse(response, error_15);
return [3 /*break*/, 6];
case 6: return [2 /*return*/];
}
});
}); });
// uploading file
router.post('/upload-file', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var body, file_1, folderName, uploadingFolder, dateStr, originalName, fileExtension, uniqueFileName;
return __generator(this, function (_a) {
try {
!fs_1.default.existsSync(helpers_1.staticFilesDirectory) ? fs_1.default.mkdirSync(helpers_1.staticFilesDirectory) : null;
!fs_1.default.existsSync(helpers_1.uploadingDirectory) ? fs_1.default.mkdirSync(helpers_1.uploadingDirectory) : null;
if (fast_web_kit_1.object.keyExist(request.body, "body")) {
body = request.body.body;
body = fast_web_kit_1.object.toObject(body);
if (fast_web_kit_1.object.keyExist(body, "folderName")) {
if (fast_web_kit_1.string.isNotEmpty(body.folderName)) {
file_1 = request.files.file;
if (file_1) {
folderName = body.folderName;
uploadingFolder = path_1.default.join(helpers_1.uploadingDirectory, folderName);
fs_1.default.existsSync(uploadingFolder) ? null : fs_1.default.mkdirSync(uploadingFolder);
dateStr = new Date().toISOString().replace(/[:.]/g, '-');
originalName = path_1.default.parse(file_1.name).name;
fileExtension = path_1.default.extname(file_1.name);
uniqueFileName = "".concat(originalName, "_").concat(dateStr).concat(fileExtension);
file_1.name = uniqueFileName;
file_1.mv("".concat(uploadingFolder, "/").concat(uniqueFileName), function (error) {
try {
if (error)
response.status(200).json({ success: false, message: error.message });
else {
response.status(200).json({ success: true, message: file_1 });
}
}
catch (error) {
response.status(200).json({ success: false, message: error.message });
}
});
}
else
response.status(200).json({ success: false, message: "no file has been provided" });
}
else
response.status(200).json({ success: false, message: "folderName must be a non-empty string" });
}
else
response.status(200).json({ success: false, message: "body must have folderName key" });
}
else
response.status(200).json({ success: false, message: "body must be a non-empty object" });
}
catch (error) {
response.status(200).json({ success: false, message: error.message });
}
return [2 /*return*/];
});
}); });
// uploading files
router.post('/upload-files', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var body, folderName, files, uploadingFolder, uploaded_1, failedToUpload_1, _loop_1, _i, files_1, file;
return __generator(this, function (_a) {
try {
!fs_1.default.existsSync(helpers_1.staticFilesDirectory) ? fs_1.default.mkdirSync(helpers_1.staticFilesDirectory) : null;
!fs_1.default.existsSync(helpers_1.uploadingDirectory) ? fs_1.default.mkdirSync(helpers_1.uploadingDirectory) : null;
if (fast_web_kit_1.object.keyExist(request.body, "body")) {
body = request.body.body;
body = fast_web_kit_1.object.toObject(body);
if (fast_web_kit_1.object.keyExist(body, "folderName")) {
if (fast_web_kit_1.string.isNotEmpty(body.folderName)) {
folderName = body.folderName;
files = request.files.files;
if (files && files.length >= 1) {
uploadingFolder = path_1.default.join(helpers_1.uploadingDirectory, folderName);
uploaded_1 = [];
failedToUpload_1 = [];
_loop_1 = function (file) {
fs_1.default.existsSync(uploadingFolder) ? null : fs_1.default.mkdirSync(uploadingFolder);
var dateStr = new Date().toISOString().replace(/[:.]/g, '-'); // Format: YYYY-MM-DDTHH-MM-SS
var originalName = path_1.default.parse(file.name).name; // Get the file name without extension
var fileExtension = path_1.default.extname(file.name); // Get the file extension
var uniqueFileName = "".concat(originalName, "_").concat(dateStr).concat(fileExtension);
file.name = uniqueFileName;
file.mv("".concat(uploadingFolder, "/").concat(uniqueFileName), function (error) {
try {
if (error)
failedToUpload_1.push({ file: file, error: error });
else
uploaded_1.push({ file: file });
}
catch (error) {
failedToUpload_1.push({ file: file, error: error });
}
});
};
for (_i = 0, files_1 = files; _i < files_1.length; _i++) {
file = files_1[_i];
_loop_1(file);
}
response.json({ success: true, message: { uploaded: uploaded_1, failedToUpload: failedToUpload_1 } });
}
else
response.status(200).json({ success: false, message: "provide atleast 1 file" });
}
else
response.status(200).json({ success: false, message: "folderName must be a non-empty string" });
}
else
response.status(200).json({ success: false, message: "body must have folderName key" });
}
else
response.status(200).json({ success: false, message: "body must be a non-empty object" });
}
catch (error) {
response.json({ success: false, message: error.message });
}
return [2 /*return*/];
});
}); });
// delete file
router.delete('/delete-file', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var _a, _b, _c, _d, _e, error_16;
return __generator(this, function (_f) {
switch (_f.label) {
case 0:
_f.trys.push([0, 5, , 6]);
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = (_a = response.status(200)).json;
_c = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.deleteSingleFile((0, helpers_1.decryptQuery)(request.query))];
case 1:
_b.apply(_a, [_c.apply(void 0, [_f.sent()])]);
return [3 /*break*/, 4];
case 2:
_e = (_d = response.status(200)).json;
return [4 /*yield*/, controllers_1.controllers.deleteSingleFile(request.query)];
case 3:
_e.apply(_d, [_f.sent()]);
_f.label = 4;
case 4: return [3 /*break*/, 6];
case 5:
error_16 = _f.sent();
sendErrorResponse(response, error_16);
return [3 /*break*/, 6];
case 6: return [2 /*return*/];
}
});
}); });
// deleting multiple files
router.delete('/delete-files', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var _a, _b, _c, queries, _d, _e, error_17;
return __generator(this, function (_f) {
switch (_f.label) {
case 0:
_f.trys.push([0, 6, , 7]);
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = (_a = response.status(200)).json;
_c = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.fileBulkDelete((0, helpers_1.convertToArray)((0, helpers_1.decryptQuery)(request.query).queries))];
case 1:
_b.apply(_a, [_c.apply(void 0, [_f.sent()])]);
return [3 /*break*/, 5];
case 2:
queries = request.query.queries;
if (!fast_web_kit_1.string.isValidJSON(queries)) return [3 /*break*/, 4];
queries = fast_web_kit_1.object.toObject(queries);
_e = (_d = response.status(200)).json;
return [4 /*yield*/, controllers_1.controllers.fileBulkDelete(queries)];
case 3:
_e.apply(_d, [_f.sent()]);
return [3 /*break*/, 5];
case 4:
response.status(200).json({ success: false, message: "queries must be a stringified array of object(s)" });
_f.label = 5;
case 5: return [3 /*break*/, 7];
case 6:
error_17 = _f.sent();
sendErrorResponse(response, error_17);
return [3 /*break*/, 7];
case 7: return [2 /*return*/];
}
});
}); });
// sending sms
router.post('/send-sms', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var _a, _b, _c, _d, _e, error_18;
return __generator(this, function (_f) {
switch (_f.label) {
case 0:
_f.trys.push([0, 5, , 6]);
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = (_a = response.status(200)).json;
_c = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.sendMessage((0, helpers_1.decrypt)(request.body))];
case 1:
_b.apply(_a, [_c.apply(void 0, [_f.sent()])]);
return [3 /*break*/, 4];
case 2:
_e = (_d = response.status(200)).json;
return [4 /*yield*/, controllers_1.controllers.sendMessage(request.body)];
case 3:
_e.apply(_d, [_f.sent()]);
_f.label = 4;
case 4: return [3 /*break*/, 6];
case 5:
error_18 = _f.sent();
sendErrorResponse(response, error_18);
return [3 /*break*/, 6];
case 6: return [2 /*return*/];
}
});
}); });
// sending email
router.post('/send-email', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var _a, _b, _c, _d, _e, error_19;
return __generator(this, function (_f) {
switch (_f.label) {
case 0:
_f.trys.push([0, 5, , 6]);
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = (_a = response.status(200)).json;
_c = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.sendEmail((0, helpers_1.decrypt)(request.body))];
case 1:
_b.apply(_a, [_c.apply(void 0, [_f.sent()])]);
return [3 /*break*/, 4];
case 2:
_e = (_d = response.status(200)).json;
return [4 /*yield*/, controllers_1.controllers.sendEmail(request.body)];
case 3:
_e.apply(_d, [_f.sent()]);
_f.label = 4;
case 4: return [3 /*break*/, 6];
case 5:
error_19 = _f.sent();
sendErrorResponse(response, error_19);
return [3 /*break*/, 6];
case 6: return [2 /*return*/];
}
});
}); });
// generating otp
router.get('/generate-otp', function (_request, response) { return __awaiter(void 0, void 0, void 0, function () {
return __generator(this, function (_a) {
try {
if (helpers_1.hasEnableEncryption)
response.status(200).json((0, helpers_1.encrypt)((0, generateOTP_1.generateOTP)()));
else
response.status(200).json((0, generateOTP_1.generateOTP)());
}
catch (error) {
sendErrorResponse(response, error);
}
return [2 /*return*/];
});
}); });
// sending otp
router.post('/send-otp', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var _a, _b, _c, _d, _e, error_20;
return __generator(this, function (_f) {
switch (_f.label) {
case 0:
_f.trys.push([0, 5, , 6]);
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = (_a = response.status(200)).json;
_c = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.sendOTP((0, helpers_1.decrypt)(request.body))];
case 1:
_b.apply(_a, [_c.apply(void 0, [_f.sent()])]);
return [3 /*break*/, 4];
case 2:
_e = (_d = response.status(200)).json;
return [4 /*yield*/, controllers_1.controllers.sendOTP(request.body)];
case 3:
_e.apply(_d, [_f.sent()]);
_f.label = 4;
case 4: return [3 /*break*/, 6];
case 5:
error_20 = _f.sent();
sendErrorResponse(response, error_20);
return [3 /*break*/, 6];
case 6: return [2 /*return*/];
}
});
}); });
// bulk listing
router.get('/bulk-list-all', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var _a, _b, _c, queries, _d, _e, error_21;
return __generator(this, function (_f) {
switch (_f.label) {
case 0:
_f.trys.push([0, 6, , 7]);
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = (_a = response.status(200)).json;
_c = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.bulkListAllDocuments((0, helpers_1.convertToArray)((0, helpers_1.decryptQuery)(request.query).queries))];
case 1:
_b.apply(_a, [_c.apply(void 0, [_f.sent()])]);
return [3 /*break*/, 5];
case 2:
queries = request.query.queries;
if (!fast_web_kit_1.string.isValidJSON(queries)) return [3 /*break*/, 4];
queries = fast_web_kit_1.object.toObject(queries);
_e = (_d = response.status(200)).json;
return [4 /*yield*/, controllers_1.controllers.bulkListAllDocuments(queries)];
case 3:
_e.apply(_d, [_f.sent()]);
return [3 /*break*/, 5];
case 4:
response.status(200).json({ success: false, message: "queries must be an array of object(s)" });
_f.label = 5;
case 5: return [3 /*break*/, 7];
case 6:
error_21 = _f.sent();
sendErrorResponse(response, error_21);
return [3 /*break*/, 7];
case 7: return [2 /*return*/];
}
});
}); });
// bulk count
router.get('/bulk-count', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var _a, _b, _c, queries, _d, _e, error_22;
return __generator(this, function (_f) {
switch (_f.label) {
case 0:
_f.trys.push([0, 6, , 7]);
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = (_a = response.status(200)).json;
_c = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.bulkCountDocuments((0, helpers_1.convertToArray)((0, helpers_1.decryptQuery)(request.query).queries))];
case 1:
_b.apply(_a, [_c.apply(void 0, [_f.sent()])]);
return [3 /*break*/, 5];
case 2:
queries = request.query.queries;
if (!fast_web_kit_1.string.isValidJSON(queries)) return [3 /*break*/, 4];
queries = fast_web_kit_1.object.toObject(queries);
_e = (_d = response.status(200)).json;
return [4 /*yield*/, controllers_1.controllers.bulkCountDocuments(queries)];
case 3:
_e.apply(_d, [_f.sent()]);
return [3 /*break*/, 5];
case 4:
response.status(200).json({ success: false, message: "queries must be a stringified array of object(s)" });
_f.label = 5;
case 5: return [3 /*break*/, 7];
case 6:
error_22 = _f.sent();
sendErrorResponse(response, error_22);
return [3 /*break*/, 7];
case 7: return [2 /*return*/];
}
});
}); });
// bulk read
router.get('/bulk-read', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var _a, _b, _c, queries, _d, _e, error_23;
return __generator(this, function (_f) {
switch (_f.label) {
case 0:
_f.trys.push([0, 6, , 7]);
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = (_a = response.status(200)).json;
_c = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.bulkGetSingleDocument((0, helpers_1.convertToArray)((0, helpers_1.decryptQuery)(request.query).queries))];
case 1:
_b.apply(_a, [_c.apply(void 0, [_f.sent()])]);
return [3 /*break*/, 5];
case 2:
queries = request.query.queries;
if (!fast_web_kit_1.string.isValidJSON(queries)) return [3 /*break*/, 4];
queries = fast_web_kit_1.object.toObject(queries);
_e = (_d = response.status(200)).json;
return [4 /*yield*/, controllers_1.controllers.bulkGetSingleDocument(queries)];
case 3:
_e.apply(_d, [_f.sent()]);
return [3 /*break*/, 5];
case 4:
response.status(200).json({ success: false, message: "queries must be a non-empty array of object(s)" });
_f.label = 5;
case 5: return [3 /*break*/, 7];
case 6:
error_23 = _f.sent();
sendErrorResponse(response, error_23);
return [3 /*break*/, 7];
case 7: return [2 /*return*/];
}
});
}); });
// push notification
router.post('/push-notification', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var _a, _b, _c, _d, _e, error_24;
return __generator(this, function (_f) {
switch (_f.label) {
case 0:
_f.trys.push([0, 5, , 6]);
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = (_a = response.status(200)).json;
_c = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.pushNotification((0, helpers_1.decrypt)(request.body))];
case 1:
_b.apply(_a, [_c.apply(void 0, [_f.sent()])]);
return [3 /*break*/, 4];
case 2:
_e = (_d = response.status(200)).json;
return [4 /*yield*/, controllers_1.controllers.pushNotification(request.body)];
case 3:
_e.apply(_d, [_f.sent()]);
_f.label = 4;
case 4: return [3 /*break*/, 6];
case 5:
error_24 = _f.sent();
sendErrorResponse(response, error_24);
return [3 /*break*/, 6];
case 6: return [2 /*return*/];
}
});
}); });
// searching
router.get("/search", function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var _a, _b, _c, _d, _e, error_25;
return __generator(this, function (_f) {
switch (_f.label) {
case 0:
_f.trys.push([0, 5, , 6]);
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = (_a = response.status(200)).json;
_c = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.search((0, helpers_1.decryptQuery)(request.query))];
case 1:
_b.apply(_a, [_c.apply(void 0, [_f.sent()])]);
return [3 /*break*/, 4];
case 2:
_e = (_d = response.status(200)).json;
return [4 /*yield*/, controllers_1.controllers.search(request.query)];
case 3:
_e.apply(_d, [_f.sent()]);
_f.label = 4;
case 4: return [3 /*break*/, 6];
case 5:
error_25 = _f.sent();
sendErrorResponse(response, error_25);
return [3 /*break*/, 6];
case 6: return [2 /*return*/];
}
});
}); });
// aggregation
router.post('/aggregation', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var _a, _b, _c, _d, _e, error_26;
return __generator(this, function (_f) {
switch (_f.label) {
case 0:
_f.trys.push([0, 5, , 6]);
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = (_a = response.status(200)).json;
_c = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.aggregate((0, helpers_1.decrypt)(request.body))];
case 1:
_b.apply(_a, [_c.apply(void 0, [_f.sent()])]);
return [3 /*break*/, 4];
case 2:
_e = (_d = response.status(200)).json;
return [4 /*yield*/, controllers_1.controllers.aggregate(request.body)];
case 3:
_e.apply(_d, [_f.sent()]);
_f.label = 4;
case 4: return [3 /*break*/, 6];
case 5:
error_26 = _f.sent();
sendErrorResponse(response, error_26);
return [3 /*break*/, 6];
case 6: return [2 /*return*/];
}
});
}); });
// bulk aggregatin
router.post('/bulk-aggregation', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var _a, _b, _c, _d, _e, error_27;
return __generator(this, function (_f) {
switch (_f.label) {
case 0:
_f.trys.push([0, 5, , 6]);
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = (_a = response.status(200)).json;
_c = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.bulkAggregate((0, helpers_1.decrypt)(request.body))];
case 1:
_b.apply(_a, [_c.apply(void 0, [_f.sent()])]);
return [3 /*break*/, 4];
case 2:
_e = (_d = response.status(200)).json;
return [4 /*yield*/, controllers_1.controllers.bulkAggregate(request.body)];
case 3:
_e.apply(_d, [_f.sent()]);
_f.label = 4;
case 4: return [3 /*break*/, 6];
case 5:
error_27 = _f.sent();
sendErrorResponse(response, error_27);
return [3 /*break*/, 6];
case 6: return [2 /*return*/];
}
});
}); });
// delete all collection
router.delete('/delete-all-collection', function (request, response) { return __awaiter(void 0, void 0, void 0, function () {
var _a, _b, _c, _d, _e, error_28;
return __generator(this, function (_f) {
switch (_f.label) {
case 0:
_f.trys.push([0, 5, , 6]);
if (!helpers_1.hasEnableEncryption) return [3 /*break*/, 2];
_b = (_a = response.status(200)).json;
_c = helpers_1.encrypt;
return [4 /*yield*/, controllers_1.controllers.deleteAllCollections((0, helpers_1.decryptQuery)(request.query))];
case 1:
_b.apply(_a, [_c.apply(void 0, [_f.sent()])]);
return [3 /*break*/, 4];
case 2:
_e = (_d = response.status(200)).json;
return [4 /*yield*/, controllers_1.controllers.deleteAllCollections(request.query)];
case 3:
_e.apply(_d, [_f.sent()]);
_f.label = 4;