Add use cases for creating and destroying reactions
This commit is contained in:
parent
c0d169367e
commit
3811f15bd7
|
@ -0,0 +1,20 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module UseCase
|
||||
module Reaction
|
||||
class Create < UseCase::Base
|
||||
option :source_user, type: Types.Instance(::User)
|
||||
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
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,19 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module UseCase
|
||||
module Reaction
|
||||
class Destroy < UseCase::Base
|
||||
option :source_user, type: Types.Instance(::User)
|
||||
option :target, type: Types.Instance(::Answer) | Types.Instance(::Comment)
|
||||
|
||||
def call
|
||||
source_user.unsmile target
|
||||
|
||||
{
|
||||
status: 204,
|
||||
resource: nil,
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue