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.