null+****@clear*****
null+****@clear*****
2012年 6月 21日 (木) 16:28:40 JST
SHIMODA Hiroshi 2012-06-21 16:28:40 +0900 (Thu, 21 Jun 2012) New Revision: 11cd37a4921ca661cd75487e4ad8da32b687e862 https://github.com/groonga/gcs/commit/11cd37a4921ca661cd75487e4ad8da32b687e862 Log: Return response for DefineIndexField as an XML Modified files: lib/api/2011-02-01/configuration.js Modified: lib/api/2011-02-01/configuration.js (+47 -2) =================================================================== --- lib/api/2011-02-01/configuration.js 2012-06-21 15:59:36 +0900 (6c84642) +++ lib/api/2011-02-01/configuration.js 2012-06-21 16:28:40 +0900 (0f87e61) @@ -2,6 +2,7 @@ var path = require('path'); var Database = require('../../database').Database; var Domain = require('../../domain').Domain; var Deferred = require('jsdeferred').Deferred; +var dateFormat = require('dateformat'); exports.version = path.basename(__dirname); @@ -105,6 +106,42 @@ handlers.CreateDomain = function(database, request, response) { }); }; +function createIndexFieldStatus(options) { + return '<IndexField>' + + '<Status>' + + '<CreationDate>' + dateFormat(options.createdAt, + 'isoUtcDateTime') + + '</CreationDate>' + + '<UpdateVersion>' + (options.updateVersion || 0) + + '</UpdateVersion>' + + '<State>' + options.state + '</State>' + + '<UpdateDate>' + dateFormat(options.updatedAt, 'isoUtcDateTime') + + '</UpdateDate>' + + '</Status>' + + '<Options>' + + '<IndexFieldType>' + options.fieldType + '</IndexFieldType>' + + '<IndexFieldName>' + options.fieldName + '</IndexFieldName>' + + '<TextOptions>' + + '<FacetEnabled>' + (options.facetEnabled || false) + + '</FacetEnabled>' + + '<ResultEnabled>' + (options.resultEnabled || false) + + '</ResultEnabled>' + + '<DefaultValue/>' + + '</TextOptions>' + + '</Options>' + + '</IndexField>'; +} + +function createDefineIndexFieldResponse(options) { + return '<?xml version="1.0"?>\n' + + '<DefineIndexFieldResponse xmlns="' + XMLNS + '">' + + '<DefineIndexFieldResult>' + + '</DefineIndexFieldResult>' + + '<ResponseMetadata>' + + '<RequestId>' + (options.requestId || '') + '</RequestId>' + + '</ResponseMetadata>' + + '</DefineIndexFieldResponse>'; +} handlers.DefineIndexField = function(database, request, response) { var domain = new Domain(request); @@ -112,6 +149,7 @@ handlers.DefineIndexField = function(database, request, response) { var fieldName = request.query['IndexField.IndexFieldName'] || ''; var field = domain.getIndexField(fieldName); + var createdAt = new Date(); var options = { table: domain.tableName, name: field.columnName, @@ -130,8 +168,15 @@ handlers.DefineIndexField = function(database, request, response) { return database.commandDeferred('column_create', termsOptions); }) .next(function() { - response.send('created index field "' + field + '" ' + - 'for the domain "' + domain.name + '"'); + response.send(createDefineIndexFieldResponse({ + fieldName: field, + fieldType: 'text', + facetEnabled: false, + resultEnabled: true, + state: 'RequiresIndexDocuments', + createdAt: createdAt, + updatedAt: createdAt + })); }) .error(function(error) { var body = createCommonErrorResponse('InternalFailure', error.message); -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...Download