lib/convenient_service/service/configs/standard.rb in convenient_service-0.17.0 vs lib/convenient_service/service/configs/standard.rb in convenient_service-0.18.0

- old
+ new

@@ -32,11 +32,10 @@ use ConvenientService::Plugins::Service::HasJSendResultStatusCheckShortSyntax::Concern use ConvenientService::Plugins::Common::HasCallbacks::Concern use ConvenientService::Plugins::Common::HasAroundCallbacks::Concern - use ConvenientService::Plugins::Service::CanHaveFallbacks::Concern use ConvenientService::Plugins::Service::HasMermaidFlowchart::Concern end middlewares :initialize do use ConvenientService::Plugins::Service::CollectsServicesInException::Middleware @@ -90,10 +89,32 @@ use ConvenientService::Plugins::Service::RaisesOnNotResultReturnValue::Middleware use ConvenientService::Plugins::Service::CanHaveFallbacks::Middleware.with(status: :error) end + ## + # @internal + # NOTE: Check `Minimal` docs to understand why `use ConvenientService::Plugins::Common::NormalizesEnv::Middleware` for `:negated_result` is used in `Standard`, not in `Minimal` config. + # + middlewares :negated_result do + use ConvenientService::Plugins::Common::NormalizesEnv::Middleware + use ConvenientService::Plugins::Service::CollectsServicesInException::Middleware + use ConvenientService::Plugins::Common::CachesReturnValue::Middleware + + use ConvenientService::Plugins::Common::EnsuresNegatedJSendResult::Middleware + end + + ## + # TODO: + # `after :step do |step|` is executed after step result is calculated. + # This completely makes sence and is useful for debugging for example. + # + # But `before :step do` is alos executed after step result is calculated. + # That confuses the end-users a lot. + # Probably a dedicated plugin is needed? + # Or to forbid `before :step do`? + # middlewares :step do use ConvenientService::Plugins::Common::HasCallbacks::Middleware use ConvenientService::Plugins::Common::HasAroundCallbacks::Middleware end @@ -112,51 +133,63 @@ class self::Result concerns do use ConvenientService::Plugins::Common::HasJSendResultDuckShortSyntax::Concern use ConvenientService::Plugins::Result::CanRecalculateResult::Concern - use ConvenientService::Plugins::Result::CanHaveStep::Concern + use ConvenientService::Plugins::Result::HasNegatedResult::Concern use ConvenientService::Plugins::Result::CanBeOwnResult::Concern use ConvenientService::Plugins::Result::CanHaveFallbacks::Concern use ConvenientService::Plugins::Result::CanHaveParentResult::Concern use ConvenientService::Plugins::Result::CanHaveCheckedStatus::Concern end - middlewares :success? do - use ConvenientService::Plugins::Result::CanHaveCheckedStatus::Middleware + middlewares :data do + use ConvenientService::Plugins::Result::RaisesOnNotCheckedResultStatus::Middleware end - middlewares :failure? do - use ConvenientService::Plugins::Result::CanHaveCheckedStatus::Middleware + middlewares :message do + use ConvenientService::Plugins::Result::RaisesOnNotCheckedResultStatus::Middleware end - middlewares :error? do - use ConvenientService::Plugins::Result::CanHaveCheckedStatus::Middleware + middlewares :code do + use ConvenientService::Plugins::Result::RaisesOnNotCheckedResultStatus::Middleware end - middlewares :not_success? do - use ConvenientService::Plugins::Result::CanHaveCheckedStatus::Middleware - end + middlewares :negated_result do + use ConvenientService::Plugins::Common::NormalizesEnv::Middleware - middlewares :not_failure? do - use ConvenientService::Plugins::Result::CanHaveCheckedStatus::Middleware + use ConvenientService::Plugins::Common::EnsuresNegatedJSendResult::Middleware end - middlewares :not_error? do - use ConvenientService::Plugins::Result::CanHaveCheckedStatus::Middleware - end + class self::Status + concerns do + use ConvenientService::Plugins::Status::CanBeChecked::Concern + end - middlewares :data do - use ConvenientService::Plugins::Result::RaisesOnNotCheckedResultStatus::Middleware - end + middlewares :success? do + use ConvenientService::Plugins::Status::CanBeChecked::Middleware + end - middlewares :message do - use ConvenientService::Plugins::Result::RaisesOnNotCheckedResultStatus::Middleware - end + middlewares :failure? do + use ConvenientService::Plugins::Status::CanBeChecked::Middleware + end - middlewares :code do - use ConvenientService::Plugins::Result::RaisesOnNotCheckedResultStatus::Middleware + middlewares :error? do + use ConvenientService::Plugins::Status::CanBeChecked::Middleware + end + + middlewares :not_success? do + use ConvenientService::Plugins::Status::CanBeChecked::Middleware + end + + middlewares :not_failure? do + use ConvenientService::Plugins::Status::CanBeChecked::Middleware + end + + middlewares :not_error? do + use ConvenientService::Plugins::Status::CanBeChecked::Middleware + end end end class self::Step concerns do @@ -164,32 +197,13 @@ use ConvenientService::Plugins::Step::CanHaveFallbacks::Concern end middlewares :result do use ConvenientService::Plugins::Step::CanHaveFallbacks::Middleware.with(fallback_true_status: :failure) - use ConvenientService::Plugins::Step::CanHaveParentResult::Middleware - end - middlewares :service_fallback_failure_result do - use ConvenientService::Plugins::Common::NormalizesEnv::Middleware - use ConvenientService::Plugins::Common::CachesReturnValue::Middleware - use ConvenientService::Plugins::Step::RaisesOnNotResultReturnValue::Middleware - end - - middlewares :fallback_failure_result do - use ConvenientService::Plugins::Common::NormalizesEnv::Middleware - use ConvenientService::Plugins::Common::CachesReturnValue::Middleware - end - - middlewares :service_fallback_error_result do - use ConvenientService::Plugins::Common::NormalizesEnv::Middleware - use ConvenientService::Plugins::Common::CachesReturnValue::Middleware - use ConvenientService::Plugins::Step::RaisesOnNotResultReturnValue::Middleware - end - - middlewares :fallback_error_result do - use ConvenientService::Plugins::Common::NormalizesEnv::Middleware - use ConvenientService::Plugins::Common::CachesReturnValue::Middleware + insert_after \ + ConvenientService::Plugins::Step::HasResult::Middleware, + ConvenientService::Plugins::Step::CanHaveParentResult::Middleware end end if Dependencies.rspec.loaded? concerns do