class IDoneThis::Client
Public Class Methods
new(options={})
click to toggle source
# File lib/idonethis/client.rb, line 10 def initialize(options={}) options = IDoneThis.options.merge(options) Configuration::VALID_OPTIONS_KEYS.each do |key| send("#{key}=", options[key]) end end
Public Instance Methods
dones(start_date, end_date=nil)
click to toggle source
# File lib/idonethis/client.rb, line 57 def dones(start_date, end_date=nil) start_date = Date.parse(start_date.to_s) end_date = Date.parse((end_date || Date.today).to_s) self.get "dones/?start=#{start_date.to_s}&end=#{end_date.to_s}" end
get(path)
click to toggle source
# File lib/idonethis/client.rb, line 51 def get(path) req = self.connection.get(path) raise StandardError.new(req.body) unless req.status == 200 req.body end
login()
click to toggle source
# File lib/idonethis/client.rb, line 18 def login begin self.login! rescue return false end true end
login!()
click to toggle source
# File lib/idonethis/client.rb, line 28 def login! base = base_connection login_form = base.get('https://idonethis.com/accounts/login/') login_html = Nokogiri::HTML(login_form.body) login_csrf = login_html.search('form input[@name=csrfmiddlewaretoken]').first["value"] login_creds = { username: self.username, password: self.password, csrfmiddlewaretoken: login_csrf} login_resp = base.post do |request| request.url 'https://idonethis.com/accounts/login/' request.headers['Referer'] = 'https://idonethis.com/accounts/login/' request.body = login_creds end raise ServiceError.new('Unable to login') if login_resp.status != 302 self.connection = base self.connection.url_prefix = URI("https://idonethis.com/api/v3/team/#{self.team}/") login_resp end