[Groonga-commit] groonga/gcs [master] Generate response XML of DefineIndexField action by xmlbuilder

Back to archive index

null+****@clear***** null+****@clear*****
2012年 7月 19日 (木) 18:06:44 JST


SHIMODA Hiroshi	2012-07-19 18:06:44 +0900 (Thu, 19 Jul 2012)

  New Revision: 54e69ff19744ae86846118eec1c610a85b0512fb
  https://github.com/groonga/gcs/commit/54e69ff19744ae86846118eec1c610a85b0512fb

  Log:
    Generate response XML of DefineIndexField action by xmlbuilder

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

  Modified: lib/api/2011-02-01/configuration.js (+56 -63)
===================================================================
--- lib/api/2011-02-01/configuration.js    2012-07-19 17:57:42 +0900 (2200b7f)
+++ lib/api/2011-02-01/configuration.js    2012-07-19 18:06:44 +0900 (970e945)
@@ -11,7 +11,6 @@ var XMLNS = 'http://cloudsearch.amazonaws.com/doc/2011-02-01';
 
 function createCommonErrorResponse(errorCode, error) {
   var doc = xmlbuilder.create();
-
   doc.begin('Response', { version: '1.0' })
     .element('Errors')
       .element('Error')
@@ -20,7 +19,6 @@ function createCommonErrorResponse(errorCode, error) {
       .up()
     .up()
     .element('RequestID').up();
-
   return doc.toString();
 }
 
@@ -44,16 +42,16 @@ function createDomainStatus(options) {
     .up()
     .element('DomainName').text(options.domainName).up()
     .element('NumSearchableDocs')
-      .text(options.searchableDocumentsCount || 0)
+      .text(options.searchableDocumentsCount || '0')
     .up()
     .element('RequiresIndexDocuments')
       .text(options.requiresIndexDocuments || 'false')
     .up()
     .element('SearchInstanceCount')
-      .text(options.searchInstanceCount || 0)
+      .text(options.searchInstanceCount || '0')
     .up()
     .element('SearchPartitionCount')
-      .text(options.searchPartitionCount || 0)
+      .text(options.searchPartitionCount || '0')
     .up()
     .element('SearchService')
       .element('Endpoint').text(options.searchEndpoint || '').up()
@@ -63,7 +61,6 @@ function createDomainStatus(options) {
 
 function createCreateDomainResponse(options) {
   var doc = xmlbuilder.create();
-
   doc.begin('CreateDomainResponse', { version: '1.0' })
     .attribute('xmlns', XMLNS)
     .element('CreateDomainResult')
@@ -72,7 +69,6 @@ function createCreateDomainResponse(options) {
     .element('ResponseMetadata')
       .element('RequestId').text(options.requestId || '').up()
     .up();
-
   return doc.toString();
 }
 
@@ -102,15 +98,16 @@ handlers.CreateDomain = function(context, request, response) {
 };
 
 function createDeleteDomainResponse(options) {
-  return '<?xml version="1.0"?>\n' +
-         '<DeleteDomainResponse xmlns="' + XMLNS + '">' +
-           '<DeleteDomainResult>' +
-             createDomainStatus(options) +
-           '</DeleteDomainResult>' +
-           '<ResponseMetadata>' +
-             '<RequestId>' + (options.requestId || '') + '</RequestId>' +
-           '</ResponseMetadata>' +
-         '</DeleteDomainResponse>';
+  var doc = xmlbuilder.create();
+  doc.begin('DeleteDomainResponse', { version: '1.0' })
+    .attribute('xmlns', XMLNS)
+    .element('DeleteDomainResult')
+      .addFragment(createDomainStatus(options))
+    .up()
+    .element('ResponseMetadata')
+      .element('RequestId').text(options.requestId || '').up()
+    .up();
+  return doc.toString();
 }
 
 handlers.DeleteDomain = function(context, request, response) {
@@ -141,60 +138,58 @@ handlers.DeleteDomain = function(context, request, response) {
 function createIndexFieldOptionStatus(options) {
   switch (options.fieldType) {
     case 'text':
-      return '<TextOptions>' +
-               '<DefaultValue/>' +
-               '<FacetEnabled>' + (options.facetEnabled || false) +
-                 '</FacetEnabled>' +
-               '<ResultEnabled>' + (options.resultEnabled || false) +
-                 '</ResultEnabled>' +
-             '</TextOptions>';
+      var textOptions = new xmlbuilder.XMLFragment(null, 'TextOptions');
+      textOptions
+        .element('DefaultValue').up()
+        .element('FacetEnabled').text(options.facetEnabled || 'false').up()
+        .element('ResultEnabled').text(options.resultEnabled || 'false').up();
+      return textOptions;
     case 'uint':
-      return '<UIntOptions>' +
-               '<DefaultValue/>' +
-             '</UIntOptions>';
+      var uintOptions = new xmlbuilder.XMLFragment(null, 'UIntOptions');
+      uintOptions
+        .element('DefaultValue').up();
+      return uintOptions;
     case 'literal':
-      return '<LiteralOptions>' +
-               '<DefaultValue/>' +
-               '<FacetEnabled>' + (options.facetEnabled || false) +
-                 '</FacetEnabled>' +
-               '<ResultEnabled>' + (options.resultEnabled || false) +
-                 '</ResultEnabled>' +
-               '<SearchEnabled>' + (options.searchEnabled || false) +
-                 '</SearchEnabled>' +
-             '</LiteralOptions>';
+      var literalOptions = new xmlbuilder.XMLFragment(null, 'LiteralOptions');
+      literalOptions
+        .element('DefaultValue').up()
+        .element('FacetEnabled').text(options.facetEnabled || 'false').up()
+        .element('ResultEnabled').text(options.resultEnabled || 'false').up()
+        .element('SearchEnabled').text(options.searchEnabled || 'false').up();
+      return literalOptions;
   }
 }
 
 function createIndexFieldStatus(options) {
-  return '<IndexField>' +
-           '<Options>' +
-             '<IndexFieldName>' + options.fieldName + '</IndexFieldName>' +
-             '<IndexFieldType>' + options.fieldType + '</IndexFieldType>' +
-             createIndexFieldOptionStatus(options) +
-           '</Options>' +
-           '<Status>' +
-             '<CreationDate>' + dateFormat(options.createdAt,
-                                           'isoUtcDateTime') +
-               '</CreationDate>' +
-             '<State>' + options.state + '</State>' +
-             '<UpdateDate>' + dateFormat(options.updatedAt, 'isoUtcDateTime') +
-               '</UpdateDate>' +
-             '<UpdateVersion>' + (options.updateVersion || 0) +
-               '</UpdateVersion>' +
-           '</Status>' +
-         '</IndexField>';
+  var indexFieldStatus = new xmlbuilder.XMLFragment(null, 'IndexField');
+  indexFieldStatus
+    .element('Options')
+      .element('IndexFieldName').text(options.fieldName).up()
+      .element('IndexFieldType').text(options.fieldType).up()
+      .addFragment(createIndexFieldOptionStatus(options))
+    .up()
+    .element('Status')
+      .element('CreationDate').text(dateFormat(options.createdAt,
+                                               'isoUtcDateTime')).up()
+      .element('State').text(options.state).up()
+      .element('UpdateDate').text(dateFormat(options.updatedAt,
+                                             'isoUtcDateTime')).up()
+      .element('UpdateVersion').text(options.updateVersion || '0').up()
+    .up();
+  return indexFieldStatus;
 }
 
 function createDefineIndexFieldResponse(options) {
-  return '<?xml version="1.0"?>\n' +
-         '<DefineIndexFieldResponse xmlns="' + XMLNS + '">' +
-           '<DefineIndexFieldResult>' +
-             createIndexFieldStatus(options) +
-           '</DefineIndexFieldResult>' +
-           '<ResponseMetadata>' +
-             '<RequestId>' + (options.requestId || '') + '</RequestId>' +
-           '</ResponseMetadata>' +
-         '</DefineIndexFieldResponse>';
+  var doc = xmlbuilder.create();
+  doc.begin('DefineIndexFieldResponse', { version: '1.0' })
+    .attribute('xmlns', XMLNS)
+    .element('DefineIndexFieldResult')
+      .addFragment(createIndexFieldStatus(options))
+    .up()
+    .element('ResponseMetadata')
+      .element('RequestId').text(options.requestId || '').up()
+    .up();
+  return doc.toString();
 }
 
 handlers.DefineIndexField = function(context, request, response) {
@@ -228,14 +223,12 @@ handlers.DefineIndexField = function(context, request, response) {
 
 function createDeleteIndexFieldResponse(options) {
   var doc = xmlbuilder.create();
-
   doc.begin('DeleteIndexFieldResponse', {version: '1.0'})
     .attribute('xmlns', XMLNS)
     .element('DeleteIndexFieldResult').up()
     .element('ResponseMetadata')
       .element('RequestId').text(options.requestId || '').up()
     .up();
-
   return doc.toString();
 }
 
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
下载 



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