[Groonga-commit] droonga/express-droonga at a0e6431 [master] /tables/:tableName: support "script" parameter

Back to archive index

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 



More information about the Groonga-commit mailing list
Back to archive index