UNPKG

@jsstudio/development-api-interceptor

Version:
55 lines 1.94 kB
"use strict"; 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