[Groonga-commit] groonga/gcs-console [master] Move prepareCurrentDomain to withDomain

Back to archive index

Yoji SHIDARA null+****@clear*****
Wed Oct 17 13:08:19 JST 2012


Yoji SHIDARA	2012-10-17 13:08:19 +0900 (Wed, 17 Oct 2012)

  New Revision: 3e68506914331171222753cfdc167e746e9ed091
  https://github.com/groonga/gcs-console/commit/3e68506914331171222753cfdc167e746e9ed091

  Log:
    Move prepareCurrentDomain to withDomain
    
    Always load index fields

  Modified files:
    routes/index.js

  Modified: routes/index.js (+42 -30)
===================================================================
--- routes/index.js    2012-10-16 17:18:20 +0900 (fea4313)
+++ routes/index.js    2012-10-17 13:08:19 +0900 (65ab99e)
@@ -6,9 +6,30 @@ exports.index = function(req, res) {
   res.render('index');
 };
 
-function prepareCurrentDomain(req, res) {
+function withDomain(req, res, callback) {
   var domain = _.where(res.locals.domains, {DomainName: req.params.name})[0];
   domain.isSelected = true;
+
+  req.domain = domain;
+
+  // get index fields
+  req.cloudsearch.DescribeIndexFields({
+    DomainName: domain.DomainName
+  }, function(error, data) {
+    if (error) {
+      res.status(500);
+      res.render('error', {message: error.Message});
+      return;
+    }
+    var indexFields = convertToArray(data.Body.DescribeIndexFieldsResponse.DescribeIndexFieldsResult.IndexFields.member);
+    var indexFieldNames = indexFields.map(function(indexField) {
+      return indexField.Options.IndexFieldName;
+    });
+
+    req.indexFields = indexFields;
+    callback(req, res);
+  });
+
   return domain;
 }
 
@@ -25,37 +46,29 @@ function convertToArray(data) {
 }
 
 exports.domain = function(req, res) {
-  var domain = prepareCurrentDomain(req, res);
-  res.render('domain-show', {domain: domain});
+  withDomain(req, res, function(req, res) {
+    res.render('domain-show', {domain: req.domain});
+  });
 };
 
 exports.domainSearch = function(req, res) {
-  var domain = prepareCurrentDomain(req, res);
-  var query = req.query.query;
-  var size = 10;
-  var start = 0; // TODO support paginate
-
-  if (query === undefined) {
-    var locals = {
-      domain: domain,
-      query: null,
-      requestURL: null,
-      results: null
-    };
-    res.render('domain-search', locals);
-    return;
-  }
+  withDomain(req, res, function(req, res) {
+    var query = req.query.query;
+    var size = 10;
+    var start = 0; // TODO support paginate
 
-  req.cloudsearch.DescribeIndexFields({
-    DomainName: domain.DomainName
-  }, function(error, data) {
-    if (error) {
-      res.status(500);
-      res.render('error', {message: error.Message});
+    if (query === undefined) {
+      var locals = {
+        domain: req.domain,
+        query: null,
+        requestURL: null,
+        results: null
+      };
+      res.render('domain-search', locals);
       return;
     }
-    var indexFields = convertToArray(data.Body.DescribeIndexFieldsResponse.DescribeIndexFieldsResult.IndexFields.member);
-    var indexFieldNames = indexFields.map(function(indexField) {
+
+    var indexFieldNames = req.indexFields.map(function(indexField) {
       return indexField.Options.IndexFieldName;
     });
 
@@ -65,7 +78,7 @@ exports.domainSearch = function(req, res) {
       start: start,
       'return-fields': indexFieldNames.join(',')
     };
-    var requestURL = 'http://' + domain.SearchService.Endpoint + '/2011-02-01/search?' + querystring.stringify(paramsForSearch);
+    var requestURL = 'http://' + req.domain.SearchService.Endpoint + '/2011-02-01/search?' + querystring.stringify(paramsForSearch);
 
     var buffer = '';
     var results = null;
@@ -76,7 +89,7 @@ exports.domainSearch = function(req, res) {
       });
       searchResponse.on('end', function() {
         var locals = {
-          domain: domain,
+          domain: req.domain,
           query: query,
           requestURL: requestURL,
           results: JSON.parse(buffer),
@@ -85,9 +98,8 @@ exports.domainSearch = function(req, res) {
         res.render('domain-search', locals);
       });
     });
+    // TODO handle errors
   });
-
-  // TODO handle errors
 };
 
 exports.domainCreate = function(req, res) {
-------------- next part --------------
HTML����������������������������...
다운로드 



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