Respond to code style fixes pointed out by @fatbusinessman
Return a hash instead of an array, it's more intention revealing
Be more strict about boolean parsing

Specifically, just allow true/1 and false/0. true/false is obvious, 1/0 is to help with hooking up rails checkboxes to a frontend that can just pass values straight through.
Reject a request if values for boolean and date properties are weird

Reject any request for a filter on a boolean where the value is not true/1/false/0.  Reject any request for a filter on a date where the value is not a hash with 'before' and/or 'after' keys and the value of those keys is not YYYY-MM-DD formatted.