module MagentoClient::Handshake
Public Instance Methods
get_verifier_code()
click to toggle source
# File lib/magento_client/handshake.rb, line 3 def get_verifier_code jar = HTTP::CookieJar.new authorize_url = request_token.authorize_url response = HTTParty.get(authorize_url) jar.parse(response.headers['set-cookie'], authorize_url) doc = Nokogiri::HTML.fragment(response.body) form = extract_form(doc.css('form#loginForm')) form[:vars]['login[username]'] = @config.username form[:vars]['login[password]'] = @config.password response = HTTParty.post(form[:action], :body => form[:vars], :headers => { 'Cookie' => HTTP::Cookie.cookie_value(jar.cookies(form[:action])) } ) jar.parse(response.headers['set-cookie'], form[:action]) doc = Nokogiri::HTML.fragment(response.body) form = extract_form(doc.css('form#oauth_authorize_confirm')) raise "Didn't get a token value" unless form[:vars]['oauth_token'] response = HTTParty.get(form[:action], :query => form[:vars], :headers => { 'Cookie' => HTTP::Cookie.cookie_value(jar.cookies(form[:action])) } ) jar.parse(response.headers['set-cookie'], form[:action]) verifier_code = extract_verifier_code(response.body) raise "Didn't get a verifier code" unless verifier_code verifier_code end
Private Instance Methods
extract_form(form)
click to toggle source
# File lib/magento_client/handshake.rb, line 47 def extract_form(form) { :vars => form.css('input').each_with_object({}) do |e, obj| obj[e.attr('name')] = e.attr('value') end, :action => form.attr('action') } end
extract_verifier_code(body)
click to toggle source
# File lib/magento_client/handshake.rb, line 41 def extract_verifier_code(body) body.match(/Verifier code: (\w+)/) do return $1 end end