class Multiwoven::Integrations::Destination::MicrosoftDynamics::Client

def get_access_token(cache)

def get_access_token(cache)
  cache_key = "dynamics_#{@instance_url}_#{@tenant_id}_#{@client_id}"
  cached_token = cache.read(cache_key)
  if cached_token
    @access_token = cached_token
  else
    new_token = create_access_token
    # max expiration is 3 minutes. No way to make it higher
    cache.write(cache_key, new_token["access_token"], expires_in: 180)
    @access_token = new_token["access_token"]
  end
end