UNPKG

node-rigorous

Version:
65 lines (43 loc) 1.68 kB
/* eslint class-methods-use-this: 0 */ const _ = require('lodash'); const RigorousError = require('../../facades/RigorousError'); const errorsMessages = require('../../etc/errorsMessages'); const RigorousRoute = require('./RigorousRoute'); const format_checker = require('../../helpers/format_checker'); const secure_user_input = require('../../helpers/secure_user_input'); class Route extends RigorousRoute { constructor(middlewares, operationParams, modelService, queryAuthorization) { 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: secure_user_input.escapeHtml(_.get(req.query, 'id')), }; return inputs; } async checkConformityInput(inputs) { if (format_checker.isNil(inputs.id)) { throw new RigorousError(errorsMessages.InputError); } 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;