module Spaceship::ConnectAPI::Users::API

Public Instance Methods

add_user_visible_apps(user_id: nil, app_ids: nil) click to toggle source

Add app permissions for user @deprecated Use {#post_user_visible_apps} instead.

# File spaceship/lib/spaceship/connect_api/users/users.rb, line 67
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) click to toggle source

Delete existing user

# File spaceship/lib/spaceship/connect_api/users/users.rb, line 31
def delete_user(user_id: nil)
  users_request_client.delete("#{Version::V1}/users/#{user_id}")
end
delete_user_invitation(user_invitation_id: nil) click to toggle source

Remove invited user from team (not yet accepted)

# File spaceship/lib/spaceship/connect_api/users/users.rb, line 161
def delete_user_invitation(user_invitation_id: nil)
  users_request_client.delete("#{Version::V1}/userInvitations/#{user_invitation_id}")
end
delete_user_visible_apps(user_id: nil, app_ids: nil) click to toggle source

Remove app permissions for user

# File spaceship/lib/spaceship/connect_api/users/users.rb, line 99
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("#{Version::V1}/users/#{user_id}/relationships/visibleApps", params, body)
end
get_user_invitation_visible_apps(user_invitation_id: id, limit: nil) click to toggle source

Get all app permissions for invited user

# File spaceship/lib/spaceship/connect_api/users/users.rb, line 166
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("#{Version::V1}/userInvitations/#{user_invitation_id}/visibleApps", params)
end
get_user_invitations(filter: {}, includes: nil, limit: nil, sort: nil) click to toggle source

Get all invited users

# File spaceship/lib/spaceship/connect_api/users/users.rb, line 123
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("#{Version::V1}/userInvitations", params)
end
get_user_visible_apps(user_id: id, limit: nil) click to toggle source

Get app permissions for user

# File spaceship/lib/spaceship/connect_api/users/users.rb, line 113
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("#{Version::V1}/users/#{user_id}/visibleApps", params)
end
get_users(filter: {}, includes: nil, limit: nil, sort: nil) click to toggle source

Get list of users

# File spaceship/lib/spaceship/connect_api/users/users.rb, line 25
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("#{Version::V1}/users", params)
end
patch_user(user_id:, all_apps_visible:, provisioning_allowed:, roles:, visible_app_ids:) click to toggle source

Update existing user

# File spaceship/lib/spaceship/connect_api/users/users.rb, line 36
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("#{Version::V1}/users/#{user_id}", body)
end
patch_user_visible_apps(user_id: nil, app_ids: nil) click to toggle source

Replace app permissions for user

# File spaceship/lib/spaceship/connect_api/users/users.rb, line 85
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("#{Version::V1}/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: []) click to toggle source

Invite new users to App Store Connect

# File spaceship/lib/spaceship/connect_api/users/users.rb, line 129
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("#{Version::V1}/userInvitations", body)
end
post_user_visible_apps(user_id: nil, app_ids: nil) click to toggle source
# File spaceship/lib/spaceship/connect_api/users/users.rb, line 71
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("#{Version::V1}/users/#{user_id}/relationships/visibleApps", body)
end
users_request_client() click to toggle source
# File spaceship/lib/spaceship/connect_api/users/users.rb, line 15
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) click to toggle source
# File spaceship/lib/spaceship/connect_api/users/users.rb, line 11
def users_request_client=(users_request_client)
  @users_request_client = users_request_client
end