[Groonga-commit] groonga/gcs [master] Fix status code from DefineIndexField with conflicted options

Zurück zum Archiv-Index

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 



More information about the Groonga-commit mailing list
Zurück zum Archiv-Index