Parse datetime string in testFilter

This commit is contained in:
Zaid Abdulla committed 2017-03-22 15:35:40 -07:00
1 parent f639435a09
commit 29d6f5b9d0
2 files changed
+19 -14

No files matched your search

-13
View File
@@ -63,19 +63,6 @@ exports.getParamValueFromPath = (obj, path) ->
return undefined return undefined
exports.matchType = (src, dst) ->
switch typeOf(src)
when STRING_TYPE
String(dst)
when NUMBER_TYPE
Number(dst)
when BOOLEAN_TYPE
v = String(dst).trim().toLowerCase()
v == 'true' or v == 'on' or v == 'yes' or v == '1'
else
dst
pathOverlap = (a, b, start) -> pathOverlap = (a, b, start) ->
if a.length == b.length if a.length == b.length
res = 3 res = 3
+19 -1
View File
@@ -244,10 +244,28 @@ test = (params, query) ->
return true return true
matchType = (src, dst) ->
if typeof src is 'string'
return String(dst)
else if typeof src is 'number'
if +dst == parseFloat(dst)
return +dst
else if not isNaN(Date.parse(dst))
return Date.parse(dst)
else if typeof src is 'boolean'
v = String(dst).trim()
if v is 'true' or v is 'TRUE' or v is 'True' or v is '1'
return true
else if v is 'false' or v is 'FALSE' or v is 'False' or v is '0'
return false
return dst
testFilter = (obj, filter) -> testFilter = (obj, filter) ->
for k, v of filter for k, v of filter
[param, op] = k.split(/([^a-zA-Z0-9\-\_\.].*)/, 2) [param, op] = k.split(/([^a-zA-Z0-9\-\_\.].*)/, 2)
val = common.matchType(obj[param], v) val = matchType(obj[param], v)
switch op switch op
when '=', undefined when '=', undefined
return false if obj[param] != val return false if obj[param] != val