[Groonga-commit] droonga/fluent-plugin-droonga at ca0ae9c [master] Move errors from body to envelope by the framework instead of CRUD output adapter

Back to archive index

YUKI Hiroshi null+****@clear*****
Wed Jan 29 16:45:21 JST 2014


YUKI Hiroshi	2014-01-29 16:45:21 +0900 (Wed, 29 Jan 2014)

  New Revision: ca0ae9ca265555f9d1c3a44a641e79292833f637
  https://github.com/droonga/fluent-plugin-droonga/commit/ca0ae9ca265555f9d1c3a44a641e79292833f637

  Message:
    Move errors from body to envelope by the framework instead of CRUD output adapter

  Modified files:
    lib/droonga/output_adapter.rb
    lib/droonga/plugin/output_adapter/crud.rb

  Modified: lib/droonga/output_adapter.rb (+29 -0)
===================================================================
--- lib/droonga/output_adapter.rb    2014-01-29 16:39:50 +0900 (d64e074)
+++ lib/droonga/output_adapter.rb    2014-01-29 16:45:21 +0900 (6c2e74a)
@@ -30,6 +30,11 @@ module Droonga
 
     def adapt(message)
       adapted_message = message
+
+      output_message = OutputMessage.new(adapted_message)
+      adapt_errors(output_message)
+      adapted_message = output_message.adapted_message
+
       message["via"].reverse_each do |command|
         @plugins.each do |plugin|
           next unless plugin.processable?(command)
@@ -42,6 +47,30 @@ module Droonga
     end
 
     private
+    def adapt_errors(output_message)
+      if output_message.body.include?("errors")
+        errors = output_message.body["errors"]
+        if errors && !errors.empty?
+          output_message.errors = errors
+
+          status_codes = []
+          errors.values.each do |error|
+            status_codes << error["statusCode"]
+          end
+          status_codes = status_codes.uniq
+          if status_codes.size == 1
+            output_message.status_code = status_codes.first
+          else
+            output_message.status_code = MessageProcessingError::STATUS_CODE
+          end
+
+          output_message.body = errors.values.first["body"]
+        else
+          output_message.body.delete("errors")
+        end
+      end
+    end
+
     def instantiate_plugin(name)
       OutputAdapterPlugin.repository.instantiate(name, @dispatcher)
     end

  Modified: lib/droonga/plugin/output_adapter/crud.rb (+0 -19)
===================================================================
--- lib/droonga/plugin/output_adapter/crud.rb    2014-01-29 16:39:50 +0900 (5636a61)
+++ lib/droonga/plugin/output_adapter/crud.rb    2014-01-29 16:45:21 +0900 (b77e2ac)
@@ -21,25 +21,6 @@ module Droonga
 
     command :crud_generic_response
     def crud_generic_response(output_message)
-      if output_message.body.include?("errors")
-        errors = output_message.body["errors"]
-        if errors && !errors.empty?
-          output_message.errors = errors
-
-          status_codes = []
-          errors.values.each do |error|
-            status_codes << error["statusCode"]
-          end
-          status_codes = status_codes.uniq
-          if status_codes.size == 1
-            output_message.status_code = status_codes.first
-          else
-            output_message.status_code = MessageProcessingError::STATUS_CODE
-          end
-
-          output_message.body = errors.values.first["body"]
-        end
-      end
       if output_message.body.include?("success")
         success = output_message.body["success"]
         unless success.nil?
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index