outers
Version:
outers - a all in one package for your day to day use
97 lines • 5.49 kB
JavaScript
;
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