Sha256: 233b7d57dd8caf99ed6a64fee49dfd9000c1b801ad38792967178f912b6d6aca

Contents?: true

Size: 1.66 KB

Versions: 26

Compression:

Stored size: 1.66 KB

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

      private
      def models
        PlatformSdk::IdMapper::Models
      end

      def get(path, params = nil)
        response = @conn.get(path, params)
        response.body
      end

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

      def list_of_models(model, list)
        list.map do |item|
          model.new(item)
        end
      end

      public

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

      def domains(**params)
        path = 'api/v1/domains/'
        body = get(path, params)
        list_of_models(models::Domain, body)
      end

      def domain_by_name(name)
        path = "api/v1/domains/#{name}/"
        body = get(path)
        models::Domain.new(body)
      end

      def domains_by_key(key)
        path = "api/v1/domains?key=#{key}"
        body = get(path)
        list_of_models(models::Domain, body)
      end
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
strongmind-platform-sdk-3.20.3 lib/platform_sdk/id_mapper/client.rb
strongmind-platform-sdk-3.20.2 lib/platform_sdk/id_mapper/client.rb
strongmind-platform-sdk-3.20.1 lib/platform_sdk/id_mapper/client.rb
strongmind-platform-sdk-3.20.0 lib/platform_sdk/id_mapper/client.rb
strongmind-platform-sdk-3.19.40 lib/platform_sdk/id_mapper/client.rb
strongmind-platform-sdk-3.19.39 lib/platform_sdk/id_mapper/client.rb
strongmind-platform-sdk-3.19.38 lib/platform_sdk/id_mapper/client.rb
strongmind-platform-sdk-3.19.37 lib/platform_sdk/id_mapper/client.rb
strongmind-platform-sdk-3.19.36 lib/platform_sdk/id_mapper/client.rb
strongmind-platform-sdk-3.19.35 lib/platform_sdk/id_mapper/client.rb
strongmind-platform-sdk-3.19.34 lib/platform_sdk/id_mapper/client.rb
strongmind-platform-sdk-3.19.33 lib/platform_sdk/id_mapper/client.rb
strongmind-platform-sdk-3.19.32 lib/platform_sdk/id_mapper/client.rb
strongmind-platform-sdk-3.19.31 lib/platform_sdk/id_mapper/client.rb
strongmind-platform-sdk-3.19.30 lib/platform_sdk/id_mapper/client.rb
strongmind-platform-sdk-3.19.29 lib/platform_sdk/id_mapper/client.rb
strongmind-platform-sdk-3.19.28 lib/platform_sdk/id_mapper/client.rb
strongmind-platform-sdk-3.19.27 lib/platform_sdk/id_mapper/client.rb
strongmind-platform-sdk-3.19.26 lib/platform_sdk/id_mapper/client.rb
strongmind-platform-sdk-3.19.25 lib/platform_sdk/id_mapper/client.rb