Refactored the achievement schema, un-nesting definitions and bringing the query operator into force.

This commit is contained in:
Scott Erickson 2014-09-04 11:16:01 -07:00
parent 8c45e22741
commit ef8342efdd

View file

@ -2,8 +2,7 @@ c = require './../schemas'
# TODO add these: http://docs.mongodb.org/manual/reference/operator/query/ # TODO add these: http://docs.mongodb.org/manual/reference/operator/query/
MongoQueryOperatorSchema = MongoQueryOperatorSchema =
title: 'MongoDB Query operator' title: 'Query Operator'
id: 'mongoQueryOperator'
type: 'object' type: 'object'
properties: properties:
'$gt': type: 'number' '$gt': type: 'number'
@ -13,26 +12,23 @@ MongoQueryOperatorSchema =
'$lte': type: 'number' '$lte': type: 'number'
'$ne': type: ['number', 'string'] '$ne': type: ['number', 'string']
'$nin': type: 'array' '$nin': type: 'array'
additionalProperties: true # TODO set to false when the schema's done '$exists': type: 'boolean'
additionalProperties: false
MongoFindQuerySchema = MongoFindQuerySchema =
title: 'MongoDB Query' title: 'Query'
id: 'mongoFindQuery'
type: 'object' type: 'object'
patternProperties: patternProperties:
#'^[-a-zA-Z0-9_]*$': '^[-a-zA-Z0-9.]*$':
'^[-a-zA-Z0-9\.]*$': anyOf: [
oneOf: [ {$ref: '#/definitions/mongoQueryOperator'},
#{$ref: '#/definitions/' + MongoQueryOperatorSchema.id},
{type: 'string'} {type: 'string'}
{type: 'object'} {type: 'object'}
{type: 'boolean'} {type: 'boolean'}
] ]
additionalProperties: true # TODO make Treema accept new pattern matched keys additionalProperties: false
definitions: {} definitions: {}
MongoFindQuerySchema.definitions[MongoQueryOperatorSchema.id] = MongoQueryOperatorSchema
AchievementSchema = c.object() AchievementSchema = c.object()
c.extendNamedProperties AchievementSchema c.extendNamedProperties AchievementSchema
c.extendBasicProperties AchievementSchema, 'achievement' c.extendBasicProperties AchievementSchema, 'achievement'
@ -48,7 +44,7 @@ AchievementSchema.default =
_.extend AchievementSchema.properties, _.extend AchievementSchema.properties,
query: query:
#type:'object' #type:'object'
$ref: '#/definitions/' + MongoFindQuerySchema.id $ref: '#/definitions/mongoFindQuery'
worth: c.float worth: c.float
collection: {type: 'string'} collection: {type: 'string'}
description: c.shortString() description: c.shortString()
@ -93,6 +89,7 @@ _.extend AchievementSchema, # Let's have these on the bottom
additionalProperties: false additionalProperties: false
AchievementSchema.definitions = {} AchievementSchema.definitions = {}
AchievementSchema.definitions[MongoFindQuerySchema.id] = MongoFindQuerySchema AchievementSchema.definitions['mongoQueryOperator'] = MongoQueryOperatorSchema
AchievementSchema.definitions['mongoFindQuery'] = MongoFindQuerySchema
module.exports = AchievementSchema module.exports = AchievementSchema