null+****@clear*****
null+****@clear*****
2012年 8月 1日 (水) 11:33:13 JST
piro 2012-08-01 11:33:13 +0900 (Wed, 01 Aug 2012) New Revision: 9d6a65945237f1b625bf86a5197eee7fedcf04cf https://github.com/groonga/gcs/commit/9d6a65945237f1b625bf86a5197eee7fedcf04cf Log: Build IndexField status from IndexField instance Modified files: lib/api/2011-02-01/configuration.js lib/database/index-field.js test/api-configuration.test.js Modified: lib/api/2011-02-01/configuration.js (+10 -15) =================================================================== --- lib/api/2011-02-01/configuration.js 2012-08-01 11:24:46 +0900 (da31258) +++ lib/api/2011-02-01/configuration.js 2012-08-01 11:33:13 +0900 (ca6b900) @@ -124,13 +124,13 @@ handlers.DeleteDomain = function(context, request, response) { }; function createIndexFieldOptionStatus(options) { - switch (options.fieldType) { + switch (options.field.type) { case 'text': var textOptions = xmlbuilder.create(); textOptions.begin('TextOptions', { version: '1.0' }) .element('DefaultValue').up() - .element('FacetEnabled').text(options.facetEnabled || 'false').up() - .element('ResultEnabled').text(options.resultEnabled || 'false'); + .element('FacetEnabled').text(options.field.facetEnabled).up() + .element('ResultEnabled').text(options.field.resultEnabled); return textOptions; case 'uint': var uintOptions = xmlbuilder.create(); @@ -141,9 +141,9 @@ function createIndexFieldOptionStatus(options) { var literalOptions = xmlbuilder.create(); literalOptions.begin('LiteralOptions', { version: '1.0' }) .element('DefaultValue').up() - .element('FacetEnabled').text(options.facetEnabled || 'false').up() - .element('ResultEnabled').text(options.resultEnabled || 'false').up() - .element('SearchEnabled').text(options.searchEnabled || 'false'); + .element('FacetEnabled').text(options.field.facetEnabled).up() + .element('ResultEnabled').text(options.field.resultEnabled).up() + .element('SearchEnabled').text(options.field.searchEnabled); return literalOptions; } } @@ -152,14 +152,14 @@ function createIndexFieldStatus(options) { var indexFieldStatus = xmlbuilder.create(); indexFieldStatus.begin('IndexField', { version: '1.0' }) .element('Options') - .element('IndexFieldName').text(options.fieldName).up() - .element('IndexFieldType').text(options.fieldType).up() + .element('IndexFieldName').text(options.field.name).up() + .element('IndexFieldType').text(options.field.type).up() .importXMLBuilder(createIndexFieldOptionStatus(options)) .up() .element('Status') .element('CreationDate').text(dateFormat(options.createdAt, 'isoUtcDateTime')).up() - .element('State').text(options.state).up() + .element('State').text(options.field.state).up() .element('UpdateDate').text(dateFormat(options.updatedAt, 'isoUtcDateTime')).up() .element('UpdateVersion').text(options.updateVersion || '0').up() @@ -188,17 +188,12 @@ handlers.DefineIndexField = function(context, request, response) { var field = domain.getIndexField(fieldName); var createdAt = new Date(); - var resultEnabled = fieldType != 'literal'; try { field.type = fieldType; field.createSync(); response.contentType('application/xml'); response.send(createDefineIndexFieldResponse({ - fieldName: fieldName, - fieldType: fieldType, - facetEnabled: false, - resultEnabled: resultEnabled, - state: 'RequiresIndexDocuments', + field: field, createdAt: createdAt, updatedAt: createdAt })); Modified: lib/database/index-field.js (+20 -0) =================================================================== --- lib/database/index-field.js 2012-08-01 11:24:46 +0900 (cccac53) +++ lib/database/index-field.js 2012-08-01 11:33:13 +0900 (f499691) @@ -140,6 +140,26 @@ IndexField.prototype = { return this._type = type }, + get defaultValue() { + return null; + }, + + get facetEnabled() { + return this.type != 'text'; + }, + + get resultEnabled() { + return true; + }, + + get searchEnabled() { + return true; + }, + + get state() { + return 'RequiresIndexDocuments'; + }, + createSync: function() { var alterTableName = this.domain.termsTableName; Modified: test/api-configuration.test.js (+3 -3) =================================================================== --- test/api-configuration.test.js 2012-08-01 11:24:46 +0900 (4c48bf9) +++ test/api-configuration.test.js 2012-08-01 11:33:13 +0900 (df1d11d) @@ -435,9 +435,9 @@ suite('Configuration API', function() { IndexFieldType: 'literal', LiteralOptions: { DefaultValue: {}, - FacetEnabled: 'false', - ResultEnabled: 'false', - SearchEnabled: 'false' + FacetEnabled: 'true', + ResultEnabled: 'true', + SearchEnabled: 'true' } }; var options = response.body.DefineIndexFieldResponse.DefineIndexFieldResult.IndexField.Options; -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B... 다운로드