UNPKG

@jsstudio/development-api-interceptor

Version:
49 lines 1.57 kB
import { ApiError } from '../error-handling'; import { logger } from '../utils/logger'; import PayLoad from './api-request/Payload'; import { Relationship } from './json-schema/Relationship'; import { Structure } from './json-schema/Structure'; const validateSchema = new Structure(); const validateRelationship = new 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('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(method); const isValid = true; try { if (request) { validateApiRequest.checkRequest(request); validateApiRequest.validate(request, tableName); } } catch (err) { throw new ApiError(err.message, err.status); } return isValid; } } export { Validation }; //# sourceMappingURL=index.js.map