Module: Spaceship::ConnectAPI::Users::API

Defined in:
spaceship/lib/spaceship/connect_api/users/users.rb

Instance Method Summary collapse

Instance Method Details

#add_user_visible_apps(user_id: nil, app_ids: nil) ⇒ Object

Deprecated.

Add app permissions for user



63
64
65
# File 'spaceship/lib/spaceship/connect_api/users/users.rb', line 63

def add_user_visible_apps(user_id: nil, app_ids: nil)
  post_user_visible_apps(user_id: user_id, app_ids: app_ids)
end

#delete_user(user_id: nil) ⇒ Object

Delete existing user



27
28
29
# File 'spaceship/lib/spaceship/connect_api/users/users.rb', line 27

def delete_user(user_id: nil)
  users_request_client.delete("users/#{user_id}")
end

#delete_user_invitation(user_invitation_id: nil) ⇒ Object

Remove invited user from team (not yet accepted)



157
158
159
# File 'spaceship/lib/spaceship/connect_api/users/users.rb', line 157

def delete_user_invitation(user_invitation_id: nil)
  users_request_client.delete("userInvitations/#{user_invitation_id}")
end

#delete_user_visible_apps(user_id: nil, app_ids: nil) ⇒ Object

Remove app permissions for user



95
96
97
98
99
100
101
102
103
104
105
106
# File 'spaceship/lib/spaceship/connect_api/users/users.rb', line 95

def delete_user_visible_apps(user_id: nil, app_ids: nil)
  body = {
    data: app_ids.map do |app_id|
      {
        type: "apps",
        id: app_id
      }
    end
  }
  params = nil
  users_request_client.delete("users/#{user_id}/relationships/visibleApps", params, body)
end

#get_user_invitation_visible_apps(user_invitation_id: id, limit: nil) ⇒ Object

Get all app permissions for invited user



162
163
164
165
# File 'spaceship/lib/spaceship/connect_api/users/users.rb', line 162

def get_user_invitation_visible_apps(user_invitation_id: id, limit: nil)
  params = users_request_client.build_params(filter: {}, includes: nil, limit: limit, sort: nil)
  users_request_client.get("userInvitations/#{user_invitation_id}/visibleApps", params)
end

#get_user_invitations(filter: {}, includes: nil, limit: nil, sort: nil) ⇒ Object

Get all invited users



119
120
121
122
# File 'spaceship/lib/spaceship/connect_api/users/users.rb', line 119

def get_user_invitations(filter: {}, includes: nil, limit: nil, sort: nil)
  params = users_request_client.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
  users_request_client.get("userInvitations", params)
end

#get_user_visible_apps(user_id: id, limit: nil) ⇒ Object

Get app permissions for user



109
110
111
112
# File 'spaceship/lib/spaceship/connect_api/users/users.rb', line 109

def get_user_visible_apps(user_id: id, limit: nil)
  params = users_request_client.build_params(filter: {}, includes: nil, limit: limit, sort: nil)
  users_request_client.get("users/#{user_id}/visibleApps", params)
end

#get_users(filter: {}, includes: nil, limit: nil, sort: nil) ⇒ Object

Get list of users



21
22
23
24
# File 'spaceship/lib/spaceship/connect_api/users/users.rb', line 21

def get_users(filter: {}, includes: nil, limit: nil, sort: nil)
  params = users_request_client.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
  users_request_client.get("users", params)
end

#patch_user(user_id:, all_apps_visible:, provisioning_allowed:, roles:, visible_app_ids:) ⇒ Object

Update existing user



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'spaceship/lib/spaceship/connect_api/users/users.rb', line 32

def patch_user(user_id:, all_apps_visible:, provisioning_allowed:, roles:, visible_app_ids:)
  body = {
    data: {
      type: 'users',
      id: user_id,
      attributes: {
        allAppsVisible: all_apps_visible,
        provisioningAllowed: provisioning_allowed,
        roles: roles
      },
      relationships: {
        visibleApps: {
          data: visible_app_ids.map do |app_id|
            {
              type: "apps",
              id: app_id
            }
          end
        }
      }
    }
  }

  # Avoid API error: You cannot set visible apps for this user because the user's roles give them access to all apps.
  body[:data].delete(:relationships) if all_apps_visible

  users_request_client.patch("users/#{user_id}", body)
end

#patch_user_visible_apps(user_id: nil, app_ids: nil) ⇒ Object

Replace app permissions for user



81
82
83
84
85
86
87
88
89
90
91
92
# File 'spaceship/lib/spaceship/connect_api/users/users.rb', line 81

def patch_user_visible_apps(user_id: nil, app_ids: nil)
  body = {
    data: app_ids.map do |app_id|
      {
        type: "apps",
        id: app_id
      }
    end
  }

  users_request_client.patch("users/#{user_id}/relationships/visibleApps", body)
end

#post_user_invitation(email: nil, first_name: nil, last_name: nil, roles: [], provisioning_allowed: nil, all_apps_visible: nil, visible_app_ids: []) ⇒ Object

Invite new users to App Store Connect



125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# File 'spaceship/lib/spaceship/connect_api/users/users.rb', line 125

def post_user_invitation(email: nil, first_name: nil, last_name: nil, roles: [], provisioning_allowed: nil, all_apps_visible: nil, visible_app_ids: [])
  body = {
    data: {
      type: "userInvitations",
      attributes: {
        email: email,
        firstName: first_name,
        lastName: last_name,
        roles: roles,
        provisioningAllowed: provisioning_allowed,
        allAppsVisible: all_apps_visible
      },
      relationships: {
        visibleApps: {
          data: visible_app_ids.map do |id|
            {
              id: id,
              type: "apps"
            }
          end
        }
      }
    }
  }

  # Avoid API error: You cannot set visible apps for this user because the user's roles give them access to all apps.
  body[:data].delete(:relationships) if all_apps_visible

  users_request_client.post("userInvitations", body)
end

#post_user_visible_apps(user_id: nil, app_ids: nil) ⇒ Object



67
68
69
70
71
72
73
74
75
76
77
78
# File 'spaceship/lib/spaceship/connect_api/users/users.rb', line 67

def post_user_visible_apps(user_id: nil, app_ids: nil)
  body = {
    data: app_ids.map do |app_id|
      {
        type: "apps",
        id: app_id
      }
    end
  }

  users_request_client.post("users/#{user_id}/relationships/visibleApps", body)
end

#users_request_clientObject

Raises:

  • (TypeError)


11
12
13
14
# File 'spaceship/lib/spaceship/connect_api/users/users.rb', line 11

def users_request_client
  return @users_request_client if @users_request_client
  raise TypeError, "You need to instantiate this module with users_request_client"
end

#users_request_client=(users_request_client) ⇒ Object



7
8
9
# File 'spaceship/lib/spaceship/connect_api/users/users.rb', line 7

def users_request_client=(users_request_client)
  @users_request_client = users_request_client
end