class WiteiWebApi::Base
Private Class Methods
agent()
click to toggle source
# File lib/witei_web_api/base.rb, line 9 def self.agent Thread.current[:witei_web_api_agent] ||= begin agent = WiteiWebApi::Agent.new login(agent) agent end end
get(uri)
click to toggle source
# File lib/witei_web_api/base.rb, line 40 def self.get(uri) page = agent.get("https://witei.com#{uri}") uri_path = URI.parse(uri).path if page.uri.path != uri_path page = login(agent, uri: uri) if page.uri.path != uri_path raise LoggedOutException.new("Cannot get #{uri}") end end page end
has_one(name, &block)
click to toggle source
# File lib/witei_web_api/base.rb, line 31 def self.has_one(name, &block) define_method(name) do id = send(:"#{name}_id") if id && !id.empty? block.call.find(id) end end end
login(agent, login: WiteiWebApi.login, password: WiteiWebApi.password, uri: nil)
click to toggle source
# File lib/witei_web_api/base.rb, line 17 def self.login(agent, login: WiteiWebApi.login, password: WiteiWebApi.password, uri: nil) uri ||= '/pro/agencies/dashboard/' page = agent.get("https://witei.com/pro/accounts/login/?next=#{CGI.escape(uri)}") form = page.form_with(class: 'form-horizontal') form.login = login form.password = password new_page = form.submit if new_page.uri.path != URI.parse(uri).path raise(LoginFailedException.new) end new_page end