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