Kouhei Sutou
null+****@clear*****
Mon Mar 24 23:52:46 JST 2014
Kouhei Sutou 2014-03-24 23:52:46 +0900 (Mon, 24 Mar 2014) New Revision: a0e6431934f1636665eaf9d89a72df734386b5c4 https://github.com/droonga/express-droonga/commit/a0e6431934f1636665eaf9d89a72df734386b5c4 Message: /tables/:tableName: support "script" parameter Modified files: lib/adapter/api/rest-request-builder.js Modified: lib/adapter/api/rest-request-builder.js (+20 -6) =================================================================== --- lib/adapter/api/rest-request-builder.js 2014-03-24 23:35:01 +0900 (b70a80b) +++ lib/adapter/api/rest-request-builder.js 2014-03-24 23:52:46 +0900 (758e73a) @@ -25,7 +25,8 @@ function searchRequestBuilder(request) { var queryParams = request.query; var queries = {}; - var condition = {}; + var queryCondition = {}; + var scriptCondition = {}; var queryName = params.tableName; try { queryName = inflection.tableize(queryName); @@ -55,13 +56,26 @@ function searchRequestBuilder(request) { queries[queryName].output.limit = getIntegerValue(queryParams, 'limit'); if (typeof queryParams.match_escalation_threshold == 'string') - condition.matchEscalationThreshold = getIntegerValue(queryParams, 'match_escalation_threshold'); + queryCondition.matchEscalationThreshold = getIntegerValue(queryParams, 'match_escalation_threshold'); if (typeof queryParams.match_to == 'string') - condition.matchTo = queryParams.match_to.split(','); + queryCondition.matchTo = queryParams.match_to.split(','); if (typeof queryParams.query == 'string') - condition.query = queryParams.query; - if (Object.keys(condition).length > 0) - queries[queryName].condition = condition; + queryCondition.query = queryParams.query; + if (typeof queryParams.script == 'string') + scriptCondition.script = queryParams.script; + if (queryCondition.query || scriptCondition.script) { + if (!queryCondition.query) { + queries[queryName].condition = scriptCondition; + } else if (!scriptCondition.script) { + queries[queryName].condition = queryCondition; + } else { + queries[queryName].condition = [ + '&&', + queryCondition, + scriptCondition + ] + } + } if (typeof queryParams.offset == 'string') queries[queryName].output.offset = getIntegerValue(queryParams, 'offset'); -------------- next part -------------- HTML����������������������������...Download