mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-03-29 14:19:48 -04:00
Started on the local mongo querier
This commit is contained in:
parent
2f5090df8f
commit
99927d1345
6 changed files with 29 additions and 0 deletions
app
server
achievements
plugins
29
app/lib/LocalMongo.coffee
Normal file
29
app/lib/LocalMongo.coffee
Normal file
|
@ -0,0 +1,29 @@
|
|||
LocalMongo = module.exports
|
||||
|
||||
LocalMongo.doQuerySelector = (value, operatorObj) ->
|
||||
for operator, body of operatorObj
|
||||
switch operator
|
||||
when '$gt' then return false unless value > body
|
||||
when '$gte' then return false unless value >= body
|
||||
when '$in' then return false unless value in body
|
||||
when '$lt' then return false unless value < body
|
||||
when '$lte' then return false unless value <= body
|
||||
when '$ne' then return false unless value != body
|
||||
when '$nin' then return false if value in body
|
||||
true
|
||||
|
||||
|
||||
LocalMongo.doLogicalOperator = (target, operatorObj) ->
|
||||
for operator, body of operatorObj
|
||||
switch operator
|
||||
when '$or' then return false unless _.reduce body (res, query) -> res or matchesQuery target x
|
||||
when '$and' then return false unless _.reduce body (res, query) -> res and matchesQuery target query
|
||||
#when '$not' then return false if
|
||||
|
||||
|
||||
LocalMongo.matchesQuery = (target, query) ->
|
||||
for key, value of query
|
||||
return false unless key in target
|
||||
if typeof value != 'object'
|
||||
return false unless target[key] == value
|
||||
else return false unless doQuerySelector value query[key]
|
0
app/schemas/models/achievement_earned.coffee
Normal file
0
app/schemas/models/achievement_earned.coffee
Normal file
0
server/achievements/Achievement.coffee
Normal file
0
server/achievements/Achievement.coffee
Normal file
0
server/achievements/achievement_handler.coffee
Normal file
0
server/achievements/achievement_handler.coffee
Normal file
0
server/achievements/earned/AchievementEarned.coffee
Normal file
0
server/achievements/earned/AchievementEarned.coffee
Normal file
0
server/plugins/achievements.coffee
Normal file
0
server/plugins/achievements.coffee
Normal file
Loading…
Add table
Reference in a new issue