Sha256: 5d42637ddac48026491b22c9cc33817bd00246cc6e5ab6b6c21176feabe10464
Contents?: true
Size: 948 Bytes
Versions: 1
Compression:
Stored size: 948 Bytes
Contents
# frozen_string_literal: true require 'dry/monads/all' require 'clean_architecture/entities/failure_details' require 'clean_architecture/interfaces/strategy' module CleanArchitecture module Strategies class ActorGetsAuthorizedThenDoesWork extend Forwardable implements_interface Interfaces::Strategy def initialize(authorization_check, sub_strategy) @authorization_check = authorization_check @sub_strategy = sub_strategy end def_delegator :@sub_strategy, :parameters UNAUTHORIZED_FAILURE_DETAILS = Entities::FailureDetails.new( message: 'Unauthorized', other_properties: {}, type: 'unauthorized' ) def result @result ||= begin if @authorization_check.authorized? @sub_strategy.result else Dry::Monads::Failure(UNAUTHORIZED_FAILURE_DETAILS) end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
clean-architecture-0.2.0 | lib/clean_architecture/strategies/actor_gets_authorized_then_does_work.rb |