Changeset View
Changeset View
Standalone View
Standalone View
lib/app/base-chips/field-types/boolean.js
"use strict"; | |||||
module.exports = { | module.exports = { | ||||
name: "boolean", | name: "boolean", | ||||
get_description: function() { | get_description() { | ||||
return 'Boolean value. True or false. Can be a string: "true" or "false".'; | return 'Boolean value. True or false. Can be a string: "true" or "false".'; | ||||
}, | }, | ||||
is_proper_value: function(context, params, value) { | is_proper_value(context, params, value) { | ||||
if (typeof value === "boolean") { | if (typeof value === "boolean") { | ||||
return Promise.resolve(); | return Promise.resolve(); | ||||
} else if (value.toString() === "1" || value.toString() === "0") { | } else if (value.toString() === "1" || value.toString() === "0") { | ||||
return Promise.resolve(); | return Promise.resolve(); | ||||
} else if ( | } else if ( | ||||
typeof value === "string" && | typeof value === "string" && | ||||
(value.toLowerCase() === "true" || value.toLowerCase() === "false") | (value.toLowerCase() === "true" || value.toLowerCase() === "false") | ||||
) { | ) { | ||||
return Promise.resolve(); | return Promise.resolve(); | ||||
} else { | |||||
return Promise.reject(`Value '${value}' is not boolean format.`); | |||||
} | } | ||||
return Promise.reject(`Value '${value}' is not boolean format.`); | |||||
}, | }, | ||||
encode: function(context, params, value) { | encode(context, params, value) { | ||||
if (typeof value === "boolean") { | if (typeof value === "boolean") { | ||||
return value; | return value; | ||||
} else if (value.toString() === "1") { | } else if (value.toString() === "1") { | ||||
return true; | return true; | ||||
} else if (value.toString() === "0") { | } else if (value.toString() === "0") { | ||||
return false; | return false; | ||||
} else if (typeof value === "string") { | } else if (typeof value === "string") { | ||||
if (value.toLowerCase() === "true") { | if (value.toLowerCase() === "true") { | ||||
return true; | return true; | ||||
} else if (value.toLowerCase() === "false") { | } else if (value.toLowerCase() === "false") { | ||||
return false; | return false; | ||||
} | } | ||||
} | } | ||||
}, | }, | ||||
filter_to_query: function(context, params, filter) { | filter_to_query(context, params, filter) { | ||||
if (filter === "") { | if (filter === "") { | ||||
return { $exists: false }; | return { $exists: false }; | ||||
} else if (filter === null) { | } else if (filter === null) { | ||||
return { $in: [true, false] }; | return { $in: [true, false] }; | ||||
} else { | |||||
return this.encode(context, params, filter); | |||||
} | } | ||||
return this.encode(context, params, filter); | |||||
}, | }, | ||||
}; | }; |