@acadix/setup
Version:
Acadix Learning Management System backend application project setup
43 lines • 2.12 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 });
exports.JoiToJSON = exports.Joi = exports.ValidateRequest = void 0;
const joi_1 = __importDefault(require("joi"));
exports.Joi = joi_1.default;
const joi_to_json_1 = __importDefault(require("joi-to-json"));
exports.JoiToJSON = joi_to_json_1.default;
const __1 = require("..");
class ValidateRequest {
constructor(schema) {
this.validation = (req, res, next) => __awaiter(this, void 0, void 0, function* () {
try {
yield this.schema.validateAsync({
body: req.body,
query: req.query,
params: req.params,
});
next();
}
catch (error /* eslint-disable-line @typescript-eslint/no-explicit-any */) {
const fieldName = error.details[0].context.key;
const errorMessage = error.details[0].message.replace(/^.+\"\s/, // eslint-disable-line no-useless-escape
`${fieldName} `);
throw new __1.Error.BadRequest(errorMessage);
}
});
this.schema = schema;
}
}
exports.ValidateRequest = ValidateRequest;
//# sourceMappingURL=validation.js.map