UNPKG

nodejs-rigorous

Version:
62 lines (40 loc) 1.64 kB
/* eslint class-methods-use-this: 0 */ const _ = require('lodash'); const { RigorousError, errorTypes } = require('../../factory/RigorousError/index'); const RigorousRoute = require('../RigorousRoute'); const h_format_checker = require('../../helpers/h_format_checker'); const h_secure_user_input = require('../../helpers/h_secure_user_input'); class Route extends RigorousRoute { constructor(middlewares, modelService, queryAuthorization, operationParams) { super(middlewares, operationParams); this.modelService = modelService; this.queryAuthorization = queryAuthorization; this.queryAuthorizationVar = null; this.queryReadConformityVar = null; } async secureInput(req) { this.userIdAsking = req.authuser.user_id; const inputs = { id: h_secure_user_input.escapeHtml(_.get(req.query, 'id')), }; return inputs; } async checkConformityInput(inputs) { if (h_format_checker.isNil(inputs.id)) { throw new RigorousError(errorTypes.RESPONSE_ERROR_INPUT); } this.queryReadConformityVar = { _id: inputs.id }; } async checkAuthorization(checker) { this.queryAuthorizationVar = this.queryAuthorization(this.userIdAsking); } async processData(inputs, checker) { const result = await this.modelService.readIt({ _id: inputs.id }, this.operationParams); return { result: result, notificationParam: null, }; } async sendNotification(inputs, notificationParam) { // None } } module.exports = Route;