@jsstudio/development-api-interceptor
Version:
development-api-interceptor
55 lines • 1.94 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Validation = void 0;
const error_handling_1 = require("../error-handling");
const logger_1 = require("../utils/logger");
const Payload_1 = __importDefault(require("./api-request/Payload"));
const Relationship_1 = require("./json-schema/Relationship");
const Structure_1 = require("./json-schema/Structure");
const validateSchema = new Structure_1.Structure();
const validateRelationship = new Relationship_1.Relationship();
class Validation {
/**
* Validate Json Schema and relationship .
* @param {JsonSchema} jsonSchema Json object.
* @returns {boolean} isValid .
*/
jsonSchema(jsonSchema) {
let isValid = true;
try {
validateSchema.validateJsonObject(jsonSchema);
validateRelationship.isRelationshipValid(jsonSchema);
}
catch (err) {
logger_1.logger('JSON schema validation error', err);
isValid = false;
}
return isValid;
}
/**
* Validate Api request.
* @param {string} tableName name of table.
* @param {string} method name of table.
* @param {Request} request request object.
* @returns {boolean} isValid .
*/
apiRequest(tableName, method, request) {
const validateApiRequest = new Payload_1.default(method);
const isValid = true;
try {
if (request) {
validateApiRequest.checkRequest(request);
validateApiRequest.validate(request, tableName);
}
}
catch (err) {
throw new error_handling_1.ApiError(err.message, err.status);
}
return isValid;
}
}
exports.Validation = Validation;
//# sourceMappingURL=index.js.map