|
@@ -162,29 +162,32 @@ export default (api_root, auth={}) => { |
|
|
// Simply build query string by hand. |
|
|
// Simply build query string by hand. |
|
|
if (options.queries) { |
|
|
if (options.queries) { |
|
|
// build the query string |
|
|
// build the query string |
|
|
let _query_string = options.queries.map(query => { |
|
|
|
|
|
// prepare the query kv pair and optional operator |
|
|
|
|
|
let k = query.label |
|
|
|
|
|
let v = query.value |
|
|
|
|
|
let op = query.op |
|
|
|
|
|
|
|
|
|
|
|
// return early if v is empty |
|
|
|
|
|
if (typeof v == 'undefined' || (!v && v !== 0)) |
|
|
|
|
|
return undefined |
|
|
|
|
|
|
|
|
|
|
|
if (op == 'like') |
|
|
|
|
|
v = `*${v}*` |
|
|
|
|
|
else if (op == 'like.right') { |
|
|
|
|
|
v = `${v}*` |
|
|
|
|
|
op = 'like' |
|
|
|
|
|
} else if (op == 'in') |
|
|
|
|
|
v = `(${v.join(',')})` |
|
|
|
|
|
else if (k == 'and') { |
|
|
|
|
|
v = '(' + v.filter(sub_query => sub_query.value == 0 || sub_query.value).map(sub_query => `${sub_query.label}.${sub_query.op}.${typeof sub_query.value == 'function' ? sub_query.value() : sub_query.value}`).join(',') + ')' |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return {k: k, v: op ? `${op}.${v}` : v} |
|
|
|
|
|
}).filter(query => typeof query != 'undefined').map(query => query.k + '=' + encodeURIComponent(query.v)).join('&') |
|
|
|
|
|
|
|
|
let _query_string = options.queries |
|
|
|
|
|
.filter(query => typeof query != 'undefined') |
|
|
|
|
|
.map(query => { |
|
|
|
|
|
// prepare the query kv pair and optional operator |
|
|
|
|
|
let k = query.label |
|
|
|
|
|
let v = query.value |
|
|
|
|
|
let op = query.op |
|
|
|
|
|
|
|
|
|
|
|
// return early if v is empty |
|
|
|
|
|
if (typeof v == 'undefined' || (!v && v !== 0)) |
|
|
|
|
|
return undefined |
|
|
|
|
|
|
|
|
|
|
|
if (op == 'like') |
|
|
|
|
|
v = `*${v}*` |
|
|
|
|
|
else if (op == 'like.right') { |
|
|
|
|
|
v = `${v}*` |
|
|
|
|
|
op = 'like' |
|
|
|
|
|
} else if (op == 'in') |
|
|
|
|
|
v = `(${v.join(',')})` |
|
|
|
|
|
else if (k == 'and') { |
|
|
|
|
|
v = '(' + v.filter(sub_query => sub_query.value == 0 || sub_query.value).map(sub_query => `${sub_query.label}.${sub_query.op}.${typeof sub_query.value == 'function' ? sub_query.value() : sub_query.value}`).join(',') + ')' |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return {k: k, v: op ? `${op}.${v}` : v} |
|
|
|
|
|
}) |
|
|
|
|
|
.map(query => query.k + '=' + encodeURIComponent(query.v)).join('&') |
|
|
|
|
|
|
|
|
// append query string to url if necessary |
|
|
// append query string to url if necessary |
|
|
if (_query_string) |
|
|
if (_query_string) |
|
|