[Groonga-commit] droonga/express-droonga at ce93b63 [master] Resolve query name automatically

Back to archive index

YUKI Hiroshi null+****@clear*****
Fri Feb 7 18:07:28 JST 2014


YUKI Hiroshi	2014-02-07 18:07:28 +0900 (Fri, 07 Feb 2014)

  New Revision: ce93b63082d667278e47f24ea1a938e132964617
  https://github.com/droonga/express-droonga/commit/ce93b63082d667278e47f24ea1a938e132964617

  Message:
    Resolve query name automatically

  Modified files:
    lib/adapter/api/rest-request-builder.js
    package.json

  Modified: lib/adapter/api/rest-request-builder.js (+17 -7)
===================================================================
--- lib/adapter/api/rest-request-builder.js    2014-01-29 16:08:46 +0900 (d92a309)
+++ lib/adapter/api/rest-request-builder.js    2014-02-07 18:07:28 +0900 (363477b)
@@ -1,3 +1,6 @@
+var inflection = require('inflection');
+
+
 var NUMERIC = /^-?(?:[0-9]+(?:\.[0-9]+)?|\.[0-9]+)$/;
 function getNumericValue(params, key) {
   var value = params[key];
@@ -23,7 +26,14 @@ function searchRequestBuilder(request) {
 
   var queries = {};
   var condition = {};
-  queries.result = {
+  var queryName = params.tableName;
+  try {
+    queryName = inflection.tableize(queryName);
+    queryName = inflection.dasherize(queryName);
+  } catch(error) {
+    queryName = params.tableName.toLowerCase();
+  }
+  queries[queryName] = {
     source: params.tableName,
     output: {
       elements: [
@@ -37,12 +47,12 @@ function searchRequestBuilder(request) {
   };
 
   if (typeof queryParams.attributes == 'string') {
-    queries.result.output.attributes = queryParams.attributes.split(',');
+    queries[queryName].output.attributes = queryParams.attributes.split(',');
   } else {
-    queries.result.output.attributes = [];
+    queries[queryName].output.attributes = [];
   }
   if (typeof queryParams.limit == 'string')
-    queries.result.output.limit = getIntegerValue(queryParams, 'limit');
+    queries[queryName].output.limit = getIntegerValue(queryParams, 'limit');
 
   if (typeof queryParams.match_escalation_threshold == 'string')
     condition.matchEscalationThreshold = getIntegerValue(queryParams, 'match_escalation_threshold');
@@ -51,12 +61,12 @@ function searchRequestBuilder(request) {
   if (typeof queryParams.query == 'string')
     condition.query = queryParams.query;
   if (Object.keys(condition).length > 0)
-    queries.result.condition = condition;
+    queries[queryName].condition = condition;
 
   if (typeof queryParams.offset == 'string')
-    queries.result.offset = getIntegerValue(queryParams, 'offset');
+    queries[queryName].offset = getIntegerValue(queryParams, 'offset');
   if (typeof queryParams.sort_by == 'string')
-    queries.result.sortBy = queryParams.sort_by.split(',');
+    queries[queryName].sortBy = queryParams.sort_by.split(',');
 
   var message = {};
   message.queries = queries;

  Modified: package.json (+1 -0)
===================================================================
--- package.json    2014-01-29 16:08:46 +0900 (bc0525b)
+++ package.json    2014-02-07 18:07:28 +0900 (0543bb7)
@@ -17,6 +17,7 @@
   "dependencies": {
     "connect": "*",
     "fluent-logger": "*",
+    "inflection": "*",
     "jade": "*",
     "less-middleware": "*",
     "msgpack": "*",
-------------- next part --------------
HTML����������������������������...
Download 



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