Retrospring/lib/use_case/reaction/create.rb

27 lines
575 B
Ruby

# frozen_string_literal: true
module UseCase
module Reaction
class Create < UseCase::Base
option :source_user_id, type: Types::Coercible::Integer
option :target, type: Types.Instance(::Answer) | Types.Instance(::Comment)
option :content, type: Types::Coercible::String, optional: true
def call
reaction = source_user.smile target
{
status: 201,
resource: reaction,
}
end
private
def source_user
@source_user ||= ::User.find(source_user_id)
end
end
end
end