class Rallio::User

Represents a user object as it comes from Rallio.

@!attribute [rw] id

@return [Integer] unique id for user

@!attribute [rw] email

@return [String] user email

@!attribute [rw] first_name

@return [String] user first name

@!attribute [rw] last_name

@return [String] user last name

@!attribute [rw] name

@return [String] full name if available

@!attribute [rw] accounts

@return [Array<Rallio::Account>] accounts user has access to

@!attribute [rw] franchisors

@return [Array<Rallio::Franchisor>] franchisors user has access to

Attributes

access_token[W]

Public Class Methods

accessible_users() click to toggle source

Lists accessible users on Rallio's platform for application.

@return [Array<Rallio::User>] array of users accessible to application

# File lib/rallio/user.rb, line 32
def self.accessible_users
  response = self.get('/accessible_users', headers: app_credentials)
  response.parsed_response['users'].map { |u| new u }
end
create(user:) click to toggle source

Create a user on the Rallio platform.

@param user [Hash] user info used to create new user @option user [String] :email unique email address @option user [String] :first_name @option user [String] :last_name @return [Rallio::User] user object that was just created

# File lib/rallio/user.rb, line 44
def self.create(user:)
  response = self.post('/users', headers: app_credentials, body: { user: user })
  new response.parsed_response['user']
end

Public Instance Methods

access_token() click to toggle source

Creates or returns the API access token for user. @see Rallio::AccessToken

NOTE: These tokens do not expire so it is suggested (recommended) that the token be cached and reused whenever possible.

@return [Rallio::AccessToken]

# File lib/rallio/user.rb, line 67
def access_token
  @access_token ||= AccessToken.create(user_id: id)
end
account_ownerships() click to toggle source

Retreives account ownerships for user. @see Rallio::AccountOwnership

@return [Array<Rallio::AccountOwnership>] array of user's account ownerships

# File lib/rallio/user.rb, line 75
def account_ownerships
  AccountOwnership.for(access_token: access_token.access_token)
end
dashboard() click to toggle source

Retreives current data for user.

@return [Rallio::User]

# File lib/rallio/user.rb, line 90
def dashboard
  response = self.class.get('/dashboard', headers: user_credentials)
  self.attributes = response.parsed_response['me']
  self.accounts = response.parsed_response['accounts']
  self.franchisors = response.parsed_response['franchisors']
  self
end
franchisor_ownerships() click to toggle source

Retreives franchisor ownerships for user. @see Rallio::FranchisorOwnership

@return [Array<Rallio::FranchisorOwnership>] array of user's franchisor ownerships

# File lib/rallio/user.rb, line 83
def franchisor_ownerships
  FranchisorOwnership.for(access_token: access_token.access_token)
end
sign_on_token(params: {}) click to toggle source

Creates new single signon for user to be redirected to. @see Rallio::SignOnToken

@param params [Hash] optional uri params sent with request @option params [String] :connect_account_id account id to display social

connections for

@return [Rallio::SignOnToken]

# File lib/rallio/user.rb, line 56
def sign_on_token(params: {})
  SignOnToken.create(user_id: id, params: params)
end

Private Instance Methods

user_credentials() click to toggle source
# File lib/rallio/user.rb, line 100
def user_credentials
  {
    'Authorization' => "Bearer #{access_token.access_token}"
  }
end