graudeejs/tripletexer

View on GitHub
lib/tripletexer/endpoints/token/session.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

module Tripletexer::Endpoints
  class Token::Session < AbstractEndpoint
    DAY_IN_SECONDS = 24 * 60 * 60

    # https://tripletex.no/v2-docs/#!/token47session/create
    def create(consumer_token, employee_token, expiration_date: Time.now.utc + DAY_IN_SECONDS)
      response = api_client.put('/v2/token/session/:create') do |req|
        req.params = {
          'consumerToken' => consumer_token,
          'employeeToken' => employee_token,
          'expirationDate' => ::Tripletexer::FormatHelpers.format_date(expiration_date)
        }
      end
      api_client.session_token = response['value']['token']
      response['value']
    end

    # https://tripletex.no/v2-docs/#!/token47session/whoAmI
    def whoami
      find_entity('/v2/token/session/>whoAmI')
    end

    # https://tripletex.no/v2-docs/#!/token47session/delete
    def destroy(session_token = api_client.session_token)
      response = api_client.delete("/v2/token/session/#{session_token}")
      api_client.reset_connection
      response
    end
  end
end