1234567891011121314151617181920212223242526272829303132333435363738394041 |
- const refParser = require('@apidevtools/json-schema-ref-parser');
- let compiledSchema = null;
- module.exports = {
- /**
- * Compiles the schema, by dereferencing it, only once
- * and returns the memory cached value
- */
- getCompiledSchema: async () => {
- if (compiledSchema === null) {
- compiledSchema = await refParser.dereference(__dirname + '/swagger.json', {
- mutateInputSchema: false,
- });
- }
- return compiledSchema;
- },
- /**
- * Scans the schema for the validation schema for the given path and method
- * and returns it.
- *
- * @param {string} path
- * @param {string} method
- * @returns string|null
- */
- getValidationSchema: (path, method) => {
- if (compiledSchema !== null &&
- typeof compiledSchema.paths[path] !== 'undefined' &&
- typeof compiledSchema.paths[path][method] !== 'undefined' &&
- typeof compiledSchema.paths[path][method].requestBody !== 'undefined' &&
- typeof compiledSchema.paths[path][method].requestBody.content !== 'undefined' &&
- typeof compiledSchema.paths[path][method].requestBody.content['application/json'] !== 'undefined' &&
- typeof compiledSchema.paths[path][method].requestBody.content['application/json'].schema !== 'undefined'
- ) {
- return compiledSchema.paths[path][method].requestBody.content['application/json'].schema;
- }
- return null;
- }
- };
|