Sha256: 29d117fad49eaca463b6b30f83325dcba621d7047be7e53ad4656708ef7d3b4f

Contents?: true

Size: 1.15 KB

Versions: 1

Compression:

Stored size: 1.15 KB

Contents

module StreamElements
  class Client
    BASE_URL = "https://api.streamelements.com/kappa/v2"

    attr_reader :jwt_access_token, :access_token, :adapter

    def initialize(jwt_access_token: nil, access_token: nil, adapter: Faraday.default_adapter)
      @jwt_access_token = jwt_access_token
      @access_token = access_token
      @adapter = adapter
    end

    def activities
      ActivitiesResource.new(self)
    end

    def tips
      TipsResource.new(self)
    end

    def song_requests
      SongRequestsResource.new(self)
    end

    def connection
      @connection ||= Faraday.new(BASE_URL) do |conn|
        if jwt_access_token
          conn.request :authorization, :Bearer, jwt_access_token
        elsif access_token
          conn.request :authorization, :Bearer, access_token
        else
          raise Error, "You must provide a jwt or access token."
        end

        conn.headers = {
          "User-Agent" => "streamelements/v#{VERSION} (github.com/deanpcmad/streamelements)"
        }

        conn.request :json

        conn.response :json, content_type: "application/json"

        conn.adapter adapter, @stubs
      end
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
streamelements-0.1.0 lib/stream_elements/client.rb