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

Back to archive index

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


SHIMODA Hiroshi	2012-07-19 18:16:47 +0900 (Thu, 19 Jul 2012)

  New Revision: 75113b91defaca32642bdc0f59cd214990bb5d4d
  https://github.com/groonga/gcs/commit/75113b91defaca32642bdc0f59cd214990bb5d4d

  Log:
    Generate response XML of UpdateSynonymOptionsResponse action by xmlbuilder

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

  Modified: lib/api/2011-02-01/configuration.js (+22 -23)
===================================================================
--- lib/api/2011-02-01/configuration.js    2012-07-19 18:12:54 +0900 (28d1ce3)
+++ lib/api/2011-02-01/configuration.js    2012-07-19 18:16:47 +0900 (bc57098)
@@ -287,30 +287,29 @@ handlers.IndexDocuments = function(context, request, response) {
   }
 };
 
-function escapeHTML(string) {
-  return string.replace(/&/g, '&')
-               .replace(/"/g, '"')
-               .replace(/>/g, '>')
-               .replace(/</g, '&lt;');
-}
-
 function createUpdateSynonymOptionsResponse(options) {
-  return '<UpdateSynonymOptionsResponse xmlns="' + XMLNS + '">' +
-           '<UpdateSynonymOptionsResult>' +
-             '<Synonyms>' +
-               '<Status>' +
-                 '<CreationDate>' + dateFormat(options.createdAt, 'isoUtcDateTime') + '</CreationDate>' +
-                 '<UpdateVersion>' + (options.updateVersion || 0) + '</UpdateVersion>' +
-                 '<State>' + (options.state || 'RequiresIndexDocuments') + '</State>' +
-                 '<UpdateDate>' + dateFormat(options.updatedAt, 'isoUtcDateTime') + '</UpdateDate>' +
-               '</Status>' +
-               '<Options>' + escapeHTML(options.synonymOptions || '{}') + '</Options>' +
-             '</Synonyms>' +
-           '</UpdateSynonymOptionsResult>' +
-           '<ResponseMetadata>' +
-             '<RequestId>' + (options.requestId || '') + '</RequestId>' +
-           '</ResponseMetadata>' +
-         '</UpdateSynonymOptionsResponse>';
+  var doc = xmlbuilder.create();
+  doc.begin('UpdateSynonymOptionsResponse', { version: '1.0' })
+    .attribute('xmlns', XMLNS)
+    .element('UpdateSynonymOptionsResult')
+      .element('Synonyms')
+        .element('Status')
+          .element('CreationDate').text(dateFormat(options.createdAt,
+                                                   'isoUtcDateTime')).up()
+          .element('UpdateVersion').text(options.updateVersion || '0').up()
+          .element('State').text(options.state || 'RequiresIndexDocuments').up()
+          .element('UpdateDate').text(dateFormat(options.updatedAt,
+                                                 'isoUtcDateTime')).up()
+        .up()
+        .element('Options')
+          .text(options.synonymOptions || '{}')
+        .up()
+      .up()
+    .up()
+    .element('ResponseMetadata')
+      .element('RequestId').text(options.requestId || '').up()
+    .up();
+  return doc.toString();
 }
 handlers.UpdateSynonymOptions = function(context, request, response) {
   var domain = new Domain(request, context);
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
Download 



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