class TogglAPI::Client
The Toggl API Client
Constants
- API_URL
Public Instance Methods
get_project_tasks(project_id:)
click to toggle source
# File lib/toggl_api/client.rb, line 30 def get_project_tasks(project_id:) perform_request( url: "#{API_URL}/projects/#{project_id}/tasks" ) || [] end
get_workspace_projects(workspace_id: default_workspace_id, active: "true")
click to toggle source
Get the projects from the specified workspace.
# File lib/toggl_api/client.rb, line 23 def get_workspace_projects(workspace_id: default_workspace_id, active: "true") perform_request( url: "#{API_URL}/workspaces/#{workspace_id}/projects", query: { active: active } ) end
update_time_entry(id:, time_entry:)
click to toggle source
Update the Toggl time entry with the specified `ìd` using the provided `time_entry` data.
# File lib/toggl_api/client.rb, line 14 def update_time_entry(id:, time_entry:) perform_request( verb: :put, url: "#{API_URL}/time_entries/#{id}", body: { time_entry: time_entry } )["data"] end
Private Instance Methods
perform_request(verb: :get, url:, headers: default_headers, query: {}, body: {})
click to toggle source
# File lib/toggl_api/client.rb, line 38 def perform_request(verb: :get, url:, headers: default_headers, query: {}, body: {}) response = HTTParty.send( verb, url, headers: headers, query: { user_agent: default_user_agent }.merge(query), body: body.to_json, basic_auth: credentials ) begin if response.code == 200 || response.code == 201 return nil if response.body == 'null' JSON.parse(response.body) else logger.error "Error (response code #{response.code}, content '#{response.body.strip}')" nil end # rescue => e # TODO: fix this too large rescue # logger.error "Exception (#{e})" end end