Files
leadchat/app/controllers/api/v1/accounts/team_members_controller.rb
2021-01-29 12:34:52 +05:30

36 lines
821 B
Ruby

class Api::V1::Accounts::TeamMembersController < Api::V1::Accounts::BaseController
before_action :fetch_team
before_action :check_authorization
def index
@team_members = @team.team_members.map(&:user)
end
def create
ActiveRecord::Base.transaction do
@team_members = params[:user_ids].map { |user_id| create_team_member(user_id) }
end
end
def destroy
ActiveRecord::Base.transaction do
params[:user_ids].map { |user_id| remove_team_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
end
def remove_team_member(user_id)
@team.team_members.find_by(user_id: user_id)&.destroy
end
def fetch_team
@team = Current.account.teams.find(params[:team_id])
end
end