class LosantRest::Auth

Class containing all the actions for the Auth Resource

Public Class Methods

new(client) click to toggle source
# File lib/losant_rest/auth.rb, line 30
def initialize(client)
  @client = client
end

Public Instance Methods

authenticate_device(params = {}) click to toggle source

Authenticates a device using the provided credentials.

Authentication: No api access token is required to call this action.

Parameters:

  • {hash} credentials - Device authentication credentials (api.losant.com/#/definitions/deviceCredentials)

  • {string} losantdomain - Domain scope of request (rarely needed)

  • {boolean} _actions - Return resource actions in response

  • {boolean} _links - Return resource link in response

  • {boolean} _embedded - Return embedded resources in response

Responses:

Errors:

# File lib/losant_rest/auth.rb, line 52
def authenticate_device(params = {})
  params = Utils.symbolize_hash_keys(params)
  query_params = { _actions: false, _links: true, _embedded: true }
  headers = {}
  body = nil

  raise ArgumentError.new("credentials is required") unless params.has_key?(:credentials)

  body = params[:credentials] if params.has_key?(:credentials)
  headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
  query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
  query_params[:_links] = params[:_links] if params.has_key?(:_links)
  query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)

  path = "/auth/device"

  @client.request(
    method: :post,
    path: path,
    query: query_params,
    headers: headers,
    body: body)
end
authenticate_user(params = {}) click to toggle source

Authenticates a user using the provided credentials.

Authentication: No api access token is required to call this action.

Parameters:

  • {hash} credentials - User authentication credentials (api.losant.com/#/definitions/userCredentials)

  • {string} losantdomain - Domain scope of request (rarely needed)

  • {boolean} _actions - Return resource actions in response

  • {boolean} _links - Return resource link in response

  • {boolean} _embedded - Return embedded resources in response

Responses:

Errors:

# File lib/losant_rest/auth.rb, line 94
def authenticate_user(params = {})
  params = Utils.symbolize_hash_keys(params)
  query_params = { _actions: false, _links: true, _embedded: true }
  headers = {}
  body = nil

  raise ArgumentError.new("credentials is required") unless params.has_key?(:credentials)

  body = params[:credentials] if params.has_key?(:credentials)
  headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
  query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
  query_params[:_links] = params[:_links] if params.has_key?(:_links)
  query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)

  path = "/auth/user"

  @client.request(
    method: :post,
    path: path,
    query: query_params,
    headers: headers,
    body: body)
end
authenticate_user_github(params = {}) click to toggle source

Authenticates a user via GitHub OAuth.

Authentication: No api access token is required to call this action.

Parameters:

  • {hash} oauth - User authentication credentials (access token) (api.losant.com/#/definitions/githubLogin)

  • {string} losantdomain - Domain scope of request (rarely needed)

  • {boolean} _actions - Return resource actions in response

  • {boolean} _links - Return resource link in response

  • {boolean} _embedded - Return embedded resources in response

Responses:

Errors:

# File lib/losant_rest/auth.rb, line 136
def authenticate_user_github(params = {})
  params = Utils.symbolize_hash_keys(params)
  query_params = { _actions: false, _links: true, _embedded: true }
  headers = {}
  body = nil

  raise ArgumentError.new("oauth is required") unless params.has_key?(:oauth)

  body = params[:oauth] if params.has_key?(:oauth)
  headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
  query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
  query_params[:_links] = params[:_links] if params.has_key?(:_links)
  query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)

  path = "/auth/user/github"

  @client.request(
    method: :post,
    path: path,
    query: query_params,
    headers: headers,
    body: body)
end
authenticate_user_saml(params = {}) click to toggle source

Authenticates a user via a SAML response.

Authentication: No api access token is required to call this action.

Parameters:

  • {hash} saml - Encoded SAML response from an IDP for a user. (api.losant.com/#/definitions/samlResponse)

  • {string} losantdomain - Domain scope of request (rarely needed)

  • {boolean} _actions - Return resource actions in response

  • {boolean} _links - Return resource link in response

  • {boolean} _embedded - Return embedded resources in response

Responses:

Errors:

# File lib/losant_rest/auth.rb, line 178
def authenticate_user_saml(params = {})
  params = Utils.symbolize_hash_keys(params)
  query_params = { _actions: false, _links: true, _embedded: true }
  headers = {}
  body = nil

  raise ArgumentError.new("saml is required") unless params.has_key?(:saml)

  body = params[:saml] if params.has_key?(:saml)
  headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
  query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
  query_params[:_links] = params[:_links] if params.has_key?(:_links)
  query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)

  path = "/auth/user/saml"

  @client.request(
    method: :post,
    path: path,
    query: query_params,
    headers: headers,
    body: body)
end
sso_domain(params = {}) click to toggle source

Checks email domain for SSO configuration.

Authentication: No api access token is required to call this action.

Parameters:

  • {string} email - The email address associated with the user login

  • {string} losantdomain - Domain scope of request (rarely needed)

  • {boolean} _actions - Return resource actions in response

  • {boolean} _links - Return resource link in response

  • {boolean} _embedded - Return embedded resources in response

Responses:

Errors:

# File lib/losant_rest/auth.rb, line 220
def sso_domain(params = {})
  params = Utils.symbolize_hash_keys(params)
  query_params = { _actions: false, _links: true, _embedded: true }
  headers = {}
  body = nil

  raise ArgumentError.new("email is required") unless params.has_key?(:email)

  query_params[:email] = params[:email] if params.has_key?(:email)
  headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
  query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
  query_params[:_links] = params[:_links] if params.has_key?(:_links)
  query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)

  path = "/auth/ssoDomain"

  @client.request(
    method: :get,
    path: path,
    query: query_params,
    headers: headers,
    body: body)
end