chore: Update method for team members (#1734)

Co-authored-by: Sojan Jose <sojan@pepalo.com>
This commit is contained in:
Nithin David Thomas
2021-02-09 19:21:31 +05:30
committed by GitHub
parent bf2b56a988
commit 1484849cc7
6 changed files with 76 additions and 9 deletions

View File

@@ -22,9 +22,10 @@ class Api::V1::Accounts::InboxMembersController < Api::V1::Accounts::BaseControl
# get the list of user_ids from params
# the missing ones are the agents which are to be deleted from the inbox
# the new ones are the agents which are to be added to the inbox
agents_to_be_added_ids.each { |user_id| @inbox.add_member(user_id) }
agents_to_be_removed_ids.each { |user_id| @inbox.remove_member(user_id) }
ActiveRecord::Base.transaction do
agents_to_be_added_ids.each { |user_id| @inbox.add_member(user_id) }
agents_to_be_removed_ids.each { |user_id| @inbox.remove_member(user_id) }
end
end
def agents_to_be_added_ids

View File

@@ -8,25 +8,38 @@ class Api::V1::Accounts::TeamMembersController < Api::V1::Accounts::BaseControll
def create
ActiveRecord::Base.transaction do
@team_members = params[:user_ids].map { |user_id| create_team_member(user_id) }
@team_members = params[:user_ids].map { |user_id| @team.add_member(user_id) }
end
end
def update
ActiveRecord::Base.transaction do
members_to_be_added_ids.each { |user_id| @team.add_member(user_id) }
members_to_be_removed_ids.each { |user_id| @team.remove_member(user_id) }
end
@team_members = @team.members
render action: 'create'
end
def destroy
ActiveRecord::Base.transaction do
params[:user_ids].map { |user_id| remove_team_member(user_id) }
params[:user_ids].map { |user_id| @team.remove_member(user_id) }
end
head :ok
end
private
def create_team_member(user_id)
@team.team_members.find_or_create_by(user_id: user_id)&.user
def members_to_be_added_ids
params[:user_ids] - current_members_ids
end
def remove_team_member(user_id)
@team.team_members.find_by(user_id: user_id)&.destroy
def members_to_be_removed_ids
current_members_ids - params[:user_ids]
end
def current_members_ids
@current_members_ids ||= @team.members.pluck(:id)
end
def fetch_team