Skip to content

Commit 7b97871

Browse files
author
Ryan Kotzen
committed
Merge branch 'develop'
2 parents 64100be + e8d0cef commit 7b97871

3 files changed

Lines changed: 21 additions & 20 deletions

File tree

src/metadata/ensure-schema-set.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@ var validator = require('../validate/validator');
55
module.exports = function ensureSchemaSet(metadata, operation, direction) {
66
if (!metadata.schemas[operation]) {
77
metadata.schemas[operation] = _.cloneDeep(metadata.schemas.core);
8-
} else {
9-
ensureNotCoreId(metadata.schemas[operation], metadata.schemas.core, operation);
10-
ensureNotCoreName(metadata.schemas[operation], metadata.schemas.core, operation, direction);
118
}
9+
ensureNotCoreId(metadata.schemas[operation], metadata.schemas.core, operation);
10+
ensureNotCoreName(metadata.schemas[operation], metadata.schemas.core, operation, direction);
1211
validator.addSchema(metadata.schemas[operation]);
1312
};
1413

src/routes/users/items/index.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@
22
var _ = require('lodash');
33
var schema = require('./item.json');
44
var outputSchema = _.merge({}, schema, require('./item-output.json'));
5-
var inputSchema = buildInputSchema();
65
var router = require('../../../crud/router')({
76
schemas: {
87
core: schema,
98
output: outputSchema,
10-
creation: inputSchema,
11-
update: inputSchema
9+
creation: buildInputSchema(),
10+
update: buildInputSchema()
1211
}
1312
});
1413
router.crudMiddleware = require('../../../mongo/crud')(router.metadata);

src/swagger/add-model.js

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,26 @@ schemaKeys.push('definitions');
66

77
module.exports = function addModel(schema) {
88
var modelSchema = _.cloneDeep(_.pick(schema, schemaKeys));
9-
stripSpecificProperties(modelSchema);
9+
filterProperties(modelSchema.properties);
10+
if (modelSchema.definitions) {
11+
Object.keys(modelSchema.definitions).forEach(function (definitionName) {
12+
var definitionValue = modelSchema.definitions[definitionName];
13+
filterProperties(definitionValue.properties);
14+
});
15+
}
1016
swagger.common.addModel(modelSchema, {validation: 'warn'});
1117
};
1218

13-
const propertiesToStrip = ['faker', 'chance'];
14-
function stripSpecificProperties(schema) {
15-
if (_.isArray(schema)) {
16-
schema.forEach(function (item) {
17-
stripSpecificProperties(item);
19+
function filterProperties(properties) {
20+
Object.keys(properties).forEach(function (propertyName) {
21+
var propertyValue = properties[propertyName];
22+
Object.keys(propertyValue).forEach(function (key) {
23+
if (schemaKeys.indexOf(key) < 0) {
24+
delete propertyValue[key];
25+
}
26+
if (key.toLowerCase() === 'properties') {
27+
filterProperties(propertyValue.properties);
28+
}
1829
});
19-
return;
20-
}
21-
if (!_.isObject(schema)) {
22-
return;
23-
}
24-
propertiesToStrip.forEach(function (key) {
25-
delete schema[key];
2630
});
27-
_.valuesIn(schema).forEach(stripSpecificProperties);
2831
}

0 commit comments

Comments
 (0)