Sha256: d98a99e612e2c07b5d3e2b75564abf31a826ad96a0d005491712bd3276a7b5ee

Contents?: true

Size: 1.01 KB

Versions: 4

Compression:

Stored size: 1.01 KB

Contents

module Garb
  class AuthenticationRequest
    class AuthError < StandardError;end
    
    URL = 'https://www.google.com/accounts/ClientLogin'
    
    def initialize(email, password)
      @email = email
      @password = password
    end
    
    def parameters
      {
        'Email'       => @email,
        'Passwd'      => @password,
        'accountType' => 'HOSTED_OR_GOOGLE',
        'service'     => 'analytics',
        'source'      => 'vigetLabs-garb-001'
      }
    end
    
    def uri
      URI.parse(URL)
    end
    
    def send_request      
      http = Net::HTTP.new(uri.host, uri.port)
      http.use_ssl = true
      http.verify_mode = OpenSSL::SSL::VERIFY_NONE
      http.request(build_request) do |response|
        raise AuthError unless response.is_a?(Net::HTTPOK)
      end
    end
    
    def build_request
      post = Net::HTTP::Post.new(uri.path)
      post.set_form_data(parameters)
      post
    end
    
    def auth_token
      send_request.body.match(/^Auth=(.*)$/)[1]
    end
    
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
vigetlabs-garb-0.1.2 lib/garb/authentication_request.rb
vigetlabs-garb-0.2.0 lib/garb/authentication_request.rb
vigetlabs-garb-0.2.1 lib/garb/authentication_request.rb
garb-0.2.1 lib/garb/authentication_request.rb