• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

sleede / fab-manager / #106

pending completion
#106

push

coveralls-ruby

sylvainbx
Merge branch 'dev' for release 6.0.0

704 of 704 new or added lines in 168 files covered. (100.0%)

7919 of 13474 relevant lines covered (58.77%)

15.29 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/app/controllers/api/users_controller.rb
1
# frozen_string_literal: true
2

3
# API Controller for resources of type Users with role :partner or :manager
4
class API::UsersController < API::APIController
×
5
  before_action :authenticate_user!
×
6
  before_action :set_user, only: %i[destroy]
×
7

8
  def index
×
9
    authorize User
×
10

11
    if %w[partner manager].include?(params[:role])
×
12
      @users = User.with_role(params[:role].to_sym).includes(:profile)
×
13
    else
×
14
      head :forbidden
×
15
    end
×
16
  end
×
17

18
  def create
×
19
    authorize User
×
20
    res = if !params[:user].empty?
×
21
            UserService.create_partner(partner_params)
×
22
          elsif !params[:manager].empty?
×
23
            UserService.create_manager(manager_params)
×
24
          else
×
25
            nil
×
26
          end
×
27

28
    if res[:saved]
×
29
      @user = res[:user]
×
30
      render status: :created
×
31
    else
×
32
      render json: res[:user].errors.full_messages, status: :unprocessable_entity
×
33
    end
×
34
  end
×
35

36
  def destroy
×
37
    authorize User
×
38
    @user.destroy
×
39
    head :no_content
×
40
  end
×
41

42
  private
×
43

44
  def set_user
×
45
    @user = User.find(params[:id])
×
46
  end
×
47

48
  def partner_params
×
49
    params.require(:user).permit(:email, :first_name, :last_name)
×
50
  end
×
51

52
  def manager_params
×
53
    params.require(:manager).permit(
×
54
      :username, :email, :group_id,
×
55
      tag_ids: [],
×
56
      profile_attributes: %i[first_name last_name phone],
×
57
      invoicing_profile_attributes: [address_attributes: [:address]],
×
58
      statistic_profile_attributes: %i[gender birthday]
×
59
    )
×
60
  end
×
61
end
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc