@jsstudio/development-api-interceptor
Version:
development-api-interceptor
49 lines • 1.57 kB
JavaScript
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