Sha256: 0e732f681f3cfce26faffb03af0c3e81a3ce56ea87cfb4aa9b285c129ab236f8

Contents?: true

Size: 1.04 KB

Versions: 2

Compression:

Stored size: 1.04 KB

Contents

module BridgeInteractive
  module Reso
    class Member
      BASE_URL = 'https://api.bridgedataoutput.com/api/v2/OData/'

      def initialize(client, server_token)
        @client = client
        @server_token = server_token
      end

      # Fetch all members from the specified dataset
      def all(dataset_id, filters = {})
        endpoint = "#{BASE_URL}#{dataset_id}/Member"
        response = @client.get(endpoint, filters.merge(access_token: @server_token))
        handle_response(response)
      end

      # Fetch a specific member by MemberKey
      def find(dataset_id, member_key)
        endpoint = "#{BASE_URL}#{dataset_id}/Member('#{member_key}')"
        response = @client.get(endpoint, { access_token: @server_token })
        handle_response(response)
      end

      private

      # Handle API response and parse the JSON response
      def handle_response(response)
        if response.status == 200
          JSON.parse(response.body)
        else
          BridgeInteractive::Error.handle(response)
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
bridge_interactive-0.1.1 lib/bridge_interactive/reso/member.rb
bridge_interactive-0.1.0 lib/bridge_interactive/reso/member.rb