Sha256: 92a23b42307741f5ef6e57dc308e215d5961f43575998638048599dd28289b7d

Contents?: true

Size: 653 Bytes

Versions: 1

Compression:

Stored size: 653 Bytes

Contents

module Xeroizer
  class Connection
    class << self
      def current_connections(client)
        response = do_request(client)

        if response.success?
          JSON.parse(response.plain_body).map do |connection_json|
            new(connection_json)
          end
        else
          raise Xeroizer::OAuth::TokenInvalid, response.plain_body
        end
      end

      private

      def do_request(client)
        client.get('https://api.xero.com/connections')
      end
    end

    def initialize(json)
      @json = json
    end

    def method_missing(name, *_args)
      @json.send(:[], name.to_s.camelcase(:lower))
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
xeroizer-3-pre-beta-3.0.0.pre.beta lib/xeroizer/connection.rb