Class: SpreeCmCommissioner::VotingCredits::ClaimableScopeResolver

Inherits:
Object
  • Object
show all
Includes:
Spree::ServiceModule::Base
Defined in:
app/services/spree_cm_commissioner/voting_credits/claimable_scope_resolver.rb

Instance Method Summary collapse

Constructor Details

#initialize(product:, voting_session_id: nil) ⇒ ClaimableScopeResolver

Returns a new instance of ClaimableScopeResolver.



6
7
8
9
# File 'app/services/spree_cm_commissioner/voting_credits/claimable_scope_resolver.rb', line 6

def initialize(product:, voting_session_id: nil)
  @product = product
  @voting_session_id = voting_session_id&.to_i
end

Instance Method Details

#callObject



11
12
13
14
15
16
17
18
# File 'app/services/spree_cm_commissioner/voting_credits/claimable_scope_resolver.rb', line 11

def call
  return failure(:unprocessable_entity, "product #{@product.id} is not flagged as claimable_vote_package") unless claimable?
  return failure(:unprocessable_entity, "product #{@product.id} has no votable_id in public_metadata") if votable_id.zero?
  return failure(:unprocessable_entity, "ShowEpisode #{votable_id} not found") if episode.nil?
  return failure(:unprocessable_entity, "episode #{episode.id} has no season (Show)") if show.nil?

  resolve_scope
end