YUKI Hiroshi
null+****@clear*****
Fri Nov 16 18:52:11 JST 2012
YUKI Hiroshi 2012-11-16 18:52:11 +0900 (Fri, 16 Nov 2012) New Revision: 9ec9012c00190b239cf7fbf40586acfc0d969d89 https://github.com/groonga/gcs/commit/9ec9012c00190b239cf7fbf40586acfc0d969d89 Log: Save creation and update date for domain options Modified files: lib/api/2011-02-01/configuration.js lib/database/domain.js Modified: lib/api/2011-02-01/configuration.js (+8 -12) =================================================================== --- lib/api/2011-02-01/configuration.js 2012-11-16 18:34:18 +0900 (41f0a7b) +++ lib/api/2011-02-01/configuration.js 2012-11-16 18:52:11 +0900 (52e6c0d) @@ -465,11 +465,10 @@ handlers.UpdateSynonymOptions = function(context, request, response, config) { var synonymOptions = JSON.parse(synonymOptionsJson); domain.updateSynonymsSync(synonymOptions.synonyms); - var updatedAt = new Date(); var result = createSynonymOptionsStatus({ domain: domain, - updatedAt: updatedAt, - createdAt: updatedAt + updatedAt: options.domain.getOptionCreationDate('synonyms'), + createdAt: options.domain.getOptionUpdateDate('synonyms') }); response.contentType('application/xml'); response.send(createGenericResponse('UpdateSynonymOptions', result, request.id)); @@ -477,11 +476,10 @@ handlers.UpdateSynonymOptions = function(context, request, response, config) { handlers.DescribeSynonymOptions = function(context, request, response, config) { var domain = new Domain(request.query.DomainName, context); - var updatedAt = new Date(); var result = createSynonymOptionsStatus({ domain: domain, - updatedAt: updatedAt, - createdAt: updatedAt + updatedAt: options.domain.getOptionCreationDate('synonyms'), + createdAt: options.domain.getOptionUpdateDate('synonyms') }); response.contentType('application/xml'); response.send(createGenericResponse('DescribeSynonymOptions', result, request.id)); @@ -506,11 +504,10 @@ handlers.UpdateDefaultSearchField = function(context, request, response, config) var fieldName = request.query.DefaultSearchField; domain.defaultSearchField = fieldName; - var updatedAt = new Date(); var result = createDefaultSearchFieldStatus({ fieldName: fieldName, - createdAt: updatedAt, - updatedAt: updatedAt + updatedAt: options.domain.getOptionCreationDate('defaultSearchField'), + createdAt: options.domain.getOptionUpdateDate('defaultSearchField') }); response.contentType('application/xml'); response.send(createGenericResponse('UpdateDefaultSearchField', result, request.id)); @@ -519,11 +516,10 @@ handlers.UpdateDefaultSearchField = function(context, request, response, config) handlers.DescribeDefaultSearchField = function(context, request, response, config) { var domain = new Domain(request.query.DomainName, context); var field = domain.defaultSearchField; - var updatedAt = new Date(); var result = createDefaultSearchFieldStatus({ fieldName: field ? field.name : '', - createdAt: updatedAt, - updatedAt: updatedAt + updatedAt: options.domain.getOptionCreationDate('defaultSearchField'), + createdAt: options.domain.getOptionUpdateDate('defaultSearchField') }); response.contentType('application/xml'); response.send(createGenericResponse('DescribeDefaultSearchField', result, request.id)); Modified: lib/database/domain.js (+37 -0) =================================================================== --- lib/database/domain.js 2012-11-16 18:34:18 +0900 (4f7a57f) +++ lib/database/domain.js 2012-11-16 18:52:11 +0900 (d5ec41d) @@ -268,12 +268,44 @@ Domain.prototype = { if (value.exists()) this.setConfiguration(this.defaultSearchFieldConfigurationKey, value.name); } + var now = new Date(); + if (!this.getConfiguration(this.getOptionCreationDateKey('defaultSearchField')) + this.setOptionCreationDate('defaultSearchField', now); + this.setOptionUpdateDate('defaultSearchField', now); return value; }, get defaultSearchFieldConfigurationKey() { return 'default_search_field'; }, + getOptionCreationDate: function(name) { + return this.exists() ? + new Date(this.getConfiguration(this.getOptionCreationDateKey(name))) : + new Date(); + }, + setOptionCreationDate: function(name, date) { + if (this.exists()) + this.setConfiguration(this.getOptionCreationDateKey(name), value.getTime()) + return value; + }, + getOptionCreationDateKey: function(option) { + return 'option_' + option + '_created_at'; + }, + + getOptionUpdateDate: function(name) { + return this.exists() ? + new Date(this.getConfiguration(this.getOptionUpdateDateKey(name))) : + new Date(); + }, + setOptionUpdateDate: function(name, date) { + if (this.exists()) + this.setConfiguration(this.getOptionUpdateDateKey(name), value.getTime()) + return value; + }, + getOptionUpdateDateKey: function(option) { + return 'option_' + option + '_updated_at'; + }, + get id() { return this._id === undefined ? DEFAULT_ID : this._id ; }, @@ -468,6 +500,11 @@ Domain.prototype = { values: JSON.stringify(values) }); + var now = new Date(); + if (!this.getConfiguration(this.getOptionCreationDateKey('synonyms')) + this.setOptionCreationDate('synonyms', now); + this.setOptionUpdateDate('synonyms', now); + return this; }, -------------- next part -------------- HTML����������������������������...Download