Navigation Menu

Skip to content

Commit

Permalink
Build IndexField status from IndexField instance
Browse files Browse the repository at this point in the history
  • Loading branch information
piro committed Aug 1, 2012
1 parent 0ea48f4 commit 9d6a659
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 18 deletions.
25 changes: 10 additions & 15 deletions lib/api/2011-02-01/configuration.js
Expand Up @@ -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();
Expand All @@ -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;
}
}
Expand All @@ -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()
Expand Down Expand 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
}));
Expand Down
20 changes: 20 additions & 0 deletions lib/database/index-field.js
Expand Up @@ -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;

Expand Down
6 changes: 3 additions & 3 deletions test/api-configuration.test.js
Expand Up @@ -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;
Expand Down

0 comments on commit 9d6a659

Please sign in to comment.