class SocMed::Services::Reports::Create

Public Instance Methods

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

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

Private Instance Methods

create_reported_object() click to toggle source
# File lib/soc_med/services/reports/create.rb, line 18
def create_reported_object
  reported_object = owner.reportable_objects.build(target: target)

  return reported_object if reported_object.save!
end