class SocMed::Services::Blocks::Create

Public Instance Methods

call() { |success, NoTrigger| ... } click to toggle source
# File lib/soc_med/services/blocks/create.rb, line 8
def call(&block)
  blocked_object = create_blocked_object

  yield(Success.new(blocked_object), NoTrigger)
rescue ActiveRecord::RecordNotFound, SocMed::Blocks::AlreadyExistsError, StandardError => e
  yield(NoTrigger, Failure.new(e))
end

Private Instance Methods

create_blocked_object() click to toggle source
# File lib/soc_med/services/blocks/create.rb, line 18
def create_blocked_object
  blocked_object = owner.blockable_objects.build(target: target)

  return blocked_object if blocked_object.save!
end