Sha256: 5f640853158173621fb98b5280c46b7ee7ba8dc24b9edb9127f7ebcbc777431d

Contents?: true

Size: 1.43 KB

Versions: 5

Compression:

Stored size: 1.43 KB

Contents

require 'openssl'
require 'faraday'
require 'yajl'
require 'date'

require 'spark_api/authentication/base_auth'
require 'spark_api/authentication/api_auth'
require 'spark_api/authentication/oauth2'

module SparkApi
  # =Authentication
  # Mixin module for handling client authentication and reauthentication to the spark api.  Makes 
  # use of the configured authentication mode (API Auth by default).
  module Authentication

    # Main authentication step.  Run before any api request unless the user session exists and is 
    # still valid.
    #
    # *returns*
    #   The user session object when authentication succeeds
    # *raises*
    #   SparkApi::ClientError when authentication fails
    def authenticate
      start_time = Time.now
      request_time = Time.now - start_time
      new_session = @authenticator.authenticate
      SparkApi.logger.info("[#{(request_time * 1000).to_i}ms]")
      SparkApi.logger.debug("Session: #{new_session.inspect}")
      new_session
    end

    # Test to see if there is an active session
    def authenticated?
      @authenticator.authenticated?
    end
    
    # Delete the current session
    def logout
      SparkApi.logger.info("Logging out.")
      @authenticator.logout
    end

    # Fetch the active session object
    def session
      @authenticator.session
    end
    # Save the active session object
    def session=(active_session)
      @authenticator.session=active_session
    end
 
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
spark_api-1.2.1 lib/spark_api/authentication.rb
spark_api-1.2.0 lib/spark_api/authentication.rb
spark_api-1.1.2 lib/spark_api/authentication.rb
spark_api-1.1.1 lib/spark_api/authentication.rb
spark_api-1.1.0 lib/spark_api/authentication.rb