class TimeLogRobot::Toggl::Report
Public Class Methods
fetch(since: nil)
click to toggle source
# File lib/time_log_robot/toggl/report.rb, line 10 def fetch(since: nil) since = since_or_default(since) response = get('/details', basic_auth: auth, query: query(since)) if response.success? pages = number_of_pages(response['total_count']) aggregate_entries(response['data'], pages, since) else raise FetchError, response['error'] end end
since_or_default(since)
click to toggle source
# File lib/time_log_robot/toggl/report.rb, line 22 def since_or_default(since) since || default_since end
Private Class Methods
aggregate_entries(entries, pages, since)
click to toggle source
# File lib/time_log_robot/toggl/report.rb, line 44 def aggregate_entries(entries, pages, since) 2.upto(pages) do |page| entries += get_entries_from_next_page(since, page) end { service: 'Toggl', entries: entries } end
auth()
click to toggle source
# File lib/time_log_robot/toggl/report.rb, line 64 def auth { username: token, password: "api_token" } end
default_since()
click to toggle source
# File lib/time_log_robot/toggl/report.rb, line 28 def default_since # DAYNAMES structure: # ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] # Therefore saturday index is 6, calculate it anyways incase it changes saturday_index = Date::DAYNAMES.index("Saturday") today_index = Date.today.wday # Return today if it is Saturday (this is what the previous # implementation would do) return Date.today.to_time if today_index == saturday_index # Otherwise, subtract the index + 1 (to account # for indecies starting at 0) (Date.today - (today_index + 1)).to_time end
get_entries_from_next_page(since, page)
click to toggle source
# File lib/time_log_robot/toggl/report.rb, line 51 def get_entries_from_next_page(since, page) built_query = query(since).merge(page: page) response = get('/details', basic_auth: auth, query: built_query) response['data'] end
number_of_pages(count)
click to toggle source
# File lib/time_log_robot/toggl/report.rb, line 57 def number_of_pages(count) remaining_entries = count % 50 pages = count / 50 pages += 1 if remaining_entries > 0 return pages end
query(since)
click to toggle source
# File lib/time_log_robot/toggl/report.rb, line 83 def query(since) { workspace_id: workspace_id, user_agent: user_agent, since: since } end
token()
click to toggle source
# File lib/time_log_robot/toggl/report.rb, line 71 def token ENV['TOGGL_TOKEN'] end
user_agent()
click to toggle source
# File lib/time_log_robot/toggl/report.rb, line 79 def user_agent ENV['TOGGL_USER_AGENT'] end
workspace_id()
click to toggle source
# File lib/time_log_robot/toggl/report.rb, line 75 def workspace_id ENV['TOGGL_WORKSPACE_ID'] end