UNPKG

outers

Version:

outers - a all in one package for your day to day use

97 lines 5.49 kB
"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 __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const ShortStorage_storage_1 = __importDefault(require("../../Storage Management/ShortStorage.storage")); // Importing ShortStorage const Middleware_Constant_1 = require("../../Config/Constant/Middleware.Constant"); // Importing Today's Date const Code_1 = require("../../StatusCode/Code"); // Importing Status Code const outer_1 = require("../../Config/outer"); // Importing Serve // Main middleware function function default_1(SaveIP = true, SaveUserAgent = true, SaveRequestTime = true, SaveContentType = true, SaveMethod = true) { // Create new ShortStorage instance const StorageInstance = new ShortStorage_storage_1.default(Middleware_Constant_1.RequestLoggerCredentials.RequestLoggerStorageName, Middleware_Constant_1.RequestLoggerCredentials.RequestLoggerStorageDefaultSize, // Default Storage is 99TB Middleware_Constant_1.RequestLoggerCredentials.RequestLoggerStorageEncryptionKey); return (Request, Response, Next) => __awaiter(this, void 0, void 0, function* () { const GetPreviousData = yield StorageInstance.Get(Middleware_Constant_1.TodayDate); // Get previous data // Check if previous data is available or not if (GetPreviousData.status === Code_1.StatusCode.NOT_FOUND) { const SaveStatus = yield StorageInstance.Save(Middleware_Constant_1.TodayDate, { TotalRequest: 0, TotalDetails: [ { RequestDate: Middleware_Constant_1.TodayDate, RequestTime: SaveRequestTime ? new Date().toLocaleTimeString() : undefined, RequestIP: SaveIP ? Request.ip : undefined, RequestUserAgent: SaveUserAgent ? Request.headers["user-agent"] : undefined, RequestContentType: SaveContentType ? Request.headers["content-type"] : undefined, RequestMethod: SaveMethod ? Request.method : undefined, RequestURL: `${Request.protocol}://${Request.hostname}${Request.originalUrl}`, DateTimeFormat: "Coordinated Universal Time", }, ], }); // Check if data is saved or not SaveStatus.status === Code_1.StatusCode.OK ? Next() : outer_1.Serve.JSON({ response: Response, status: false, message: "Unable to process your request, please try again later", Title: "Error", statusCode: Code_1.StatusCode.INTERNAL_SERVER_ERROR, data: undefined, }); } else { const UpdateStatus = yield StorageInstance.Update(Middleware_Constant_1.TodayDate, { TotalRequest: GetPreviousData.Data[0].Data.TotalRequest + 1, TotalDetails: [ ...GetPreviousData.Data[0].Data.TotalDetails, { RequestDate: Middleware_Constant_1.TodayDate, RequestTime: SaveRequestTime ? new Date().getTime() : undefined, RequestIP: SaveIP ? Request.ip : undefined, RequestUserAgent: SaveUserAgent ? Request.headers["user-agent"] : undefined, RequestContentType: SaveContentType ? Request.headers["content-type"] : undefined, RequestMethod: SaveMethod ? Request.method : undefined, RequestURL: `${Request.protocol}://${Request.hostname}${Request.originalUrl}`, DateTimeFormat: "Coordinated Universal Time", }, ], }); // Check if data is updated or not UpdateStatus.status === Code_1.StatusCode.OK ? Next() : outer_1.Serve.JSON({ response: Response, status: false, message: "Unable to process your request, please try again later", Title: "Error", statusCode: Code_1.StatusCode.INTERNAL_SERVER_ERROR, data: undefined, }); } }); } exports.default = default_1; //# sourceMappingURL=Base.middleware.js.map