node-rigorous
Version:
Rigorous Framework
65 lines (43 loc) • 1.68 kB
JavaScript
/* 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;