ソースを参照

make_api: filtering out undefined queries should be before processing

master
Bing Sun 5年前
コミット
e4c07143b5
署名者: sunb GPGキーID: F7795F8C590626AB
1個のファイルの変更26行の追加23行の削除
  1. +26
    -23
      src/postgrest.js

+ 26
- 23
src/postgrest.js ファイルの表示

@@ -162,29 +162,32 @@ export default (api_root, auth={}) => {
// Simply build query string by hand.
if (options.queries) {
// 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
if (_query_string)


読み込み中…
キャンセル
保存