Class: Users::UnfollowService

Inherits:
Object
  • Object
show all
Defined in:
app/services/users/unfollow_service.rb

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ UnfollowService

Returns a new instance of UnfollowService.



5
6
7
8
# File 'app/services/users/unfollow_service.rb', line 5

def initialize(params)
  @follower = params[:follower]
  @followee = params[:followee]
end

Instance Method Details

#executeObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/services/users/unfollow_service.rb', line 10

def execute
  # rubocop: disable CodeReuse/ActiveRecord -- This is special service for unfollowing users
  deleted_rows = Users::UserFollowUser.where(
    follower_id: @follower.id,
    followee_id: @followee.id
  ).delete_all
  # rubocop: enable CodeReuse/ActiveRecord

  if deleted_rows > 0
    @follower.followees.reset
    ServiceResponse.success
  else
    ServiceResponse.error(message: _('Failed to unfollow user'))
  end
end