[Groonga-commit] groonga/gcs [master] Generate response body of CreateDomain action by xmlbuilder

Back to archive index

null+****@clear***** null+****@clear*****
2012年 7月 19日 (木) 17:39:30 JST


SHIMODA Hiroshi	2012-07-19 17:39:30 +0900 (Thu, 19 Jul 2012)

  New Revision: 15f12e2bc3d51b2b98e1a253a404295407667164
  https://github.com/groonga/gcs/commit/15f12e2bc3d51b2b98e1a253a404295407667164

  Log:
    Generate response body of CreateDomain action by xmlbuilder

  Modified files:
    lib/api/2011-02-01/configuration.js
    lib/xmlbuilder.js

  Modified: lib/api/2011-02-01/configuration.js (+43 -32)
===================================================================
--- lib/api/2011-02-01/configuration.js    2012-07-19 17:30:39 +0900 (b7506cb)
+++ lib/api/2011-02-01/configuration.js    2012-07-19 17:39:30 +0900 (6ef01a8)
@@ -19,7 +19,8 @@ function createCommonErrorResponse(errorCode, message) {
         .element('Message').text(message).up()
       .up()
     .up()
-    .element('RequestID').up();
+    .element('RequestID').up()
+  .up();
 
   return doc.toString();
 }
@@ -32,40 +33,50 @@ function getBaseDomain(domain) {
 }
 
 function createDomainStatus(options) {
-  return '<DomainStatus>' +
-           '<Created>' + (options.created || 'false') + '</Created>' +
-           '<Deleted>' + (options.deleted || 'false') + '</Deleted>' +
-           '<DocService>' +
-             '<Endpoint>' + (options.documentsEndpoint || '') + '</Endpoint>' +
-           '</DocService>' +
-           '<DomainId>' + options.domainId + '/' + options.domainName +
-             '</DomainId>' +
-           '<DomainName>' + options.domainName + '</DomainName>' +
-           '<NumSearchableDocs>' + (options.searchableDocumentsCount || 0) +
-             '</NumSearchableDocs>' +
-           '<RequiresIndexDocuments>' +
-             (options.requiresIndexDocuments || 'false') +
-             '</RequiresIndexDocuments>' +
-           '<SearchInstanceCount>' + (options.searchInstanceCount || 0) +
-             '</SearchInstanceCount>' +
-           '<SearchPartitionCount>' + (options.searchPartitionCount || 0) +
-             '</SearchPartitionCount>' +
-           '<SearchService>' +
-             '<Endpoint>' + (options.searchEndpoint || '') + '</Endpoint>' +
-           '</SearchService>' +
-         '</DomainStatus>';
+  var domainStatus = new xmlbuilder.XMLFragment(null, 'DomainStatus');
+  domainStatus
+    .element('Created').text(options.created || 'false').up()
+    .element('Deleted').text(options.deleted || 'false').up()
+    .element('DocService')
+      .element('Endpoint').text(options.documentsEndpoint || '').up()
+    .up()
+    .element('DomainId')
+      .text(options.domainId + '/' + options.domainName)
+    .up()
+    .element('DomainName').text(options.domainName).up()
+    .element('NumSearchableDocs')
+      .text(options.searchableDocumentsCount || 0)
+    .up()
+    .element('RequiresIndexDocuments')
+      .text(options.requiresIndexDocuments || 'false')
+    .up()
+    .element('SearchInstanceCount')
+      .text(options.searchInstanceCount || 0)
+    .up()
+    .element('SearchPartitionCount')
+      .text(options.searchPartitionCount || 0)
+    .up()
+    .element('SearchService')
+      .element('Endpoint').text(options.documentsEndpoint || '').up()
+    .up()
+  .up();
+  return domainStatus;
 }
 
 function createCreateDomainResponse(options) {
-  return '<?xml version="1.0"?>\n' +
-         '<CreateDomainResponse xmlns="' + XMLNS + '">' +
-           '<CreateDomainResult>' +
-             createDomainStatus(options) +
-           '</CreateDomainResult>' +
-           '<ResponseMetadata>' +
-             '<RequestId>' + (options.requestId || '') + '</RequestId>' +
-           '</ResponseMetadata>' +
-         '</CreateDomainResponse>';
+  var doc = xmlbuilder.create();
+
+  doc.begin('CreateDomainResponse', {version: '1.0'})
+    .attribute({ xmlns: XMLNS })
+    .element('CreateDomainResult')
+      .addFragment(createDomainStatus(options))
+    .up()
+    .element('ResponseMetadata')
+      .element('RequestId').text((options.requestId || '')).up()
+    .up()
+  .up();
+
+  return doc.toString();
 }
 
 handlers.CreateDomain = function(context, request, response) {

  Modified: lib/xmlbuilder.js (+1 -0)
===================================================================
--- lib/xmlbuilder.js    2012-07-19 17:30:39 +0900 (206381f)
+++ lib/xmlbuilder.js    2012-07-19 17:39:30 +0900 (51d7ce4)
@@ -1,6 +1,7 @@
 module.exports = require('xmlbuilder');
 module.exports.XMLFragment = require('xmlbuilder/lib/XMLFragment');
 module.exports.XMLFragment.prototype.addFragment = function(fragment) {
+  fragment.parent = this;
   this.children.push(fragment);
   return this;
 };
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
Download 



Groonga-commit メーリングリストの案内
Back to archive index