YUKI Hiroshi
null+****@clear*****
Wed Nov 21 15:38:21 JST 2012
YUKI Hiroshi 2012-11-21 15:38:21 +0900 (Wed, 21 Nov 2012) New Revision: faa22dfdec0300accd5d76933f6b6e7c92b5f484 https://github.com/groonga/gcs/commit/faa22dfdec0300accd5d76933f6b6e7c92b5f484 Log: Fix status code from DefineIndexField with conflicted options Modified files: lib/api/2011-02-01/configuration.js lib/database/index-field.js lib/errors.js Modified: lib/api/2011-02-01/configuration.js (+1 -1) =================================================================== --- lib/api/2011-02-01/configuration.js 2012-11-21 15:31:14 +0900 (77f08af) +++ lib/api/2011-02-01/configuration.js 2012-11-21 15:38:21 +0900 (56119e4) @@ -605,7 +605,7 @@ exports.createHandler = function(context, config) { var body, code; if (error.isSenderError) { body = createSenderErrorResponse(error.code, error, request.id); - code = 400; + code = error.type == 'FieldOptionConflictError' ? 409 : 400; } else { body= createCommonErrorResponse('InternalFailure', error.stack || error, request.id); code = 500; Modified: lib/database/index-field.js (+2 -2) =================================================================== --- lib/database/index-field.js 2012-11-21 15:31:14 +0900 (a22058f) +++ lib/database/index-field.js 2012-11-21 15:38:21 +0900 (790d8a2) @@ -1,6 +1,6 @@ var nroonga = require('../wrapped-nroonga'); var ValidationError = require('../errors').ValidationError; -var FieldTypeValidationError = require('../errors').FieldTypeValidationError; +var FieldOptionConflictError = require('../errors').FieldOptionConflictError; var MINIMUM_NAME_LENGTH = exports.MINIMUM_NAME_LENGTH = @@ -616,7 +616,7 @@ IndexField.prototype = { validateOptions: function() { if (this.facetEnabled && this.resultEnabled) - throw new FieldTypeValidationError( + throw new FieldOptionConflictError( 'Error defining field: ' + this.name + '. ' + 'An IndexField may not be both FacetEnabled and ResultEnabled'); } Modified: lib/errors.js (+5 -17) =================================================================== --- lib/errors.js 2012-11-21 15:31:14 +0900 (41b8798) +++ lib/errors.js 2012-11-21 15:38:21 +0900 (dd6c1fc) @@ -3,29 +3,21 @@ function ValidationError(message) { error.isValidationError = true; error.isSenderError = true; error.code = 'ValidationError'; + error.type = 'ValidationError'; return error; } - -ValidationError.isValidationError = function(error) { - return !!error.isValidationError; -}; - exports.ValidationError = ValidationError; -function FieldTypeValidationError(message) { +function FieldOptionConflictError(message) { var error = new Error(message); error.isValidationError = true; error.isSenderError = true; error.code = 'InvalidType'; + error.type = 'FieldOptionConflictError'; return error; } - -FieldTypeValidationError.isFieldTypeValidationError = function(error) { - return !!error.isFieldTypeValidationError; -}; - -exports.FieldTypeValidationError = FieldTypeValidationError; +exports.FieldOptionConflictError = FieldOptionConflictError; function NotFoundError(message) { @@ -33,11 +25,7 @@ function NotFoundError(message) { error.isNotFoundError = true; error.isSenderError = true; error.code = 'ResourceNotFound'; + error.type = 'NotFoundError'; return error; } - -NotFoundError.isNotFoundError = function(error) { - return !!error.isNotFoundError; -}; - exports.NotFoundError = NotFoundError; -------------- next part -------------- HTML����������������������������...Download