lib/flexmls_api/authentication.rb in flexmls_api-0.3.2 vs lib/flexmls_api/authentication.rb in flexmls_api-0.3.3
- old
+ new
@@ -9,13 +9,13 @@
module Authentication
# Main authentication step. Run before any api request unless the user session exists and is
# still valid.
#
- # :returns:
+ # *returns*
# The user session object when authentication succeeds
- # :raises:
+ # *raises*
# FlexmlsApi::ClientError when authentication fails
def authenticate
sig = sign("#{@api_secret}ApiKey#{@api_key}")
FlexmlsApi.logger.debug("Authenticating to #{@endpoint}")
start_time = Time.now
@@ -23,9 +23,21 @@
resp = connection(true).post request_path, ""
request_time = Time.now - start_time
FlexmlsApi.logger.info("[#{request_time}s] Api: POST #{request_path}")
@session = Session.new(resp.body.results[0])
FlexmlsApi.logger.debug("Authentication: #{@session.inspect}")
+ @session
+ end
+
+ # Delete the current session
+ def logout
+ FlexmlsApi.logger.info("Logging out.")
+ delete("/session/#{@session.auth_token}") unless @session.nil?
+ @session = nil
+ end
+
+ # Active session object
+ def session
@session
end
# Builds an ordered list of key value pairs and concatenates it all as one big string. Used
# specifically for signing a request.