Sha256: ecb8b32147330574d0db6a6d4516c9d59b7e5f00ca8156f34b95ce42a6d78c46

Contents?: true

Size: 1 KB

Versions: 1

Compression:

Stored size: 1 KB

Contents

require 'rubygems'
require 'json'
require 'net/https'

module Stammer
  class Client
    def initialize(user, password, secret = nil, client = nil, format = 'json')
      @user     = user
      @password = password
      @format   = format

      unless !secret || !client
        @secret = secret
        @client = client
      else
        raise Stammer::InvalidCredentials if secret != client
      end
    end
    
    def messages(subset = nil)
      MessageList.new(send_request('messages', subset))
    end

    private
    def send_request(*args)
      url = URI.parse("https://yammer.com/api/v1/#{args.compact.join('/')}.#{@format}")
      
      conn = Net::HTTP.new(url.host, url.port)
      conn.use_ssl = true
      conn.verify_mode = OpenSSL::SSL::VERIFY_NONE
      res = conn.start { |http| 
        req = Net::HTTP::Get.new(url.path, {'User-Agent' => 'Stammer v0.0.1', 'Accept' => 'text/json'})
        req.basic_auth(@user, @password)
        http.request(req)
      }
      JSON.load(res.body)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bscofield-stammer-0.0.2 lib/stammer/client.rb