Sha256: 9d9b8eefd1c449926d06f5a0e6fe572946d703960be87bb26a4e44615fd9f84c

Contents?: true

Size: 968 Bytes

Versions: 5

Compression:

Stored size: 968 Bytes

Contents

# frozen_string_literal: true

module PlatformSdk
  module IdMapper
    # IdMapper::Client
    class Client
      attr_reader :token, :domain, :conn

      def initialize(secret)
        @token = secret[:token]
        @domain = secret[:domain]
        @token ||= PlatformSdk::IdMapper.token
        @domain ||= PlatformSdk::IdMapper.domain

        @conn = Faraday.new("https://#{@domain}") do |faraday|
          faraday.headers = headers
          faraday.adapter Faraday.default_adapter
          faraday.response :json, content_type: /\bjson$/
          faraday.response :raise_error
        end
      end

      def pairs(guid)
        begin
          response = @conn.get("api/v1/pairs/#{guid}")
        rescue Faraday::ResourceNotFound
          raise PlatformSdk::IdMapper::PairNotFoundError, msg = guid
        end
        response.body
      end

      private

      def headers
        { "Authorization" => "Token #{@token}" }
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
strongmind-platform-sdk-2.14.0 lib/platform_sdk/id_mapper/client.rb
strongmind-platform-sdk-2.13.1 lib/platform_sdk/id_mapper/client.rb
strongmind-platform-sdk-2.13.0 lib/platform_sdk/id_mapper/client.rb
strongmind-platform-sdk-2.12.1 lib/platform_sdk/id_mapper/client.rb
strongmind-platform-sdk-2.12.0 lib/platform_sdk/id_mapper/client.rb