Class: Basecamp::Services::ReportsService
- Inherits:
-
BaseService
- Object
- BaseService
- Basecamp::Services::ReportsService
- Defined in:
- lib/basecamp/generated/services/reports_service.rb
Overview
Service for Reports operations
Instance Method Summary collapse
-
#assigned(person_id:, group_by: nil) ⇒ Hash
Get todos assigned to a specific person.
-
#overdue ⇒ Hash
Get overdue todos grouped by lateness.
-
#person_progress(person_id:, page: nil, max_items: nil) ⇒ Hash
Get a person's activity timeline.
-
#progress(page: nil, max_items: nil) ⇒ ListEnumerator<Hash>
Get account-wide activity feed (progress report).
-
#upcoming(window_starts_on:, window_ends_on:) ⇒ Hash
Get upcoming schedule entries and assignable items within a date window.
Constructor Details
This class inherits a constructor from Basecamp::Services::BaseService
Instance Method Details
#assigned(person_id:, group_by: nil) ⇒ Hash
Get todos assigned to a specific person
35 36 37 38 39 |
# File 'lib/basecamp/generated/services/reports_service.rb', line 35 def assigned(person_id:, group_by: nil) with_operation(service: "reports", operation: "assigned", is_mutation: false, resource_id: person_id) do http_get("/reports/todos/assigned/#{person_id}", params: compact_query_params(group_by: group_by), operation: "GetAssignedTodos").json end end |
#overdue ⇒ Hash
Get overdue todos grouped by lateness
43 44 45 46 47 |
# File 'lib/basecamp/generated/services/reports_service.rb', line 43 def overdue() with_operation(service: "reports", operation: "overdue", is_mutation: false) do http_get("/reports/todos/overdue.json", operation: "GetOverdueTodos").json end end |
#person_progress(person_id:, page: nil, max_items: nil) ⇒ Hash
Get a person's activity timeline
54 55 56 57 58 59 |
# File 'lib/basecamp/generated/services/reports_service.rb', line 54 def person_progress(person_id:, page: nil, max_items: nil) wrap_paginated_wrapped(key: "events", service: "reports", operation: "person_progress", is_mutation: false, resource_id: person_id) do params = compact_query_params(page: page) paginate_wrapped("/reports/users/progress/#{person_id}.json", key: "events", params: params, operation: "GetPersonProgress", max_items: max_items) end end |
#progress(page: nil, max_items: nil) ⇒ ListEnumerator<Hash>
Get account-wide activity feed (progress report)
14 15 16 17 18 19 |
# File 'lib/basecamp/generated/services/reports_service.rb', line 14 def progress(page: nil, max_items: nil) wrap_paginated(service: "reports", operation: "progress", is_mutation: false) do params = compact_query_params(page: page) paginate("/reports/progress.json", params: params, operation: "GetProgressReport", max_items: max_items) end end |
#upcoming(window_starts_on:, window_ends_on:) ⇒ Hash
Get upcoming schedule entries and assignable items within a date window.
25 26 27 28 29 |
# File 'lib/basecamp/generated/services/reports_service.rb', line 25 def upcoming(window_starts_on:, window_ends_on:) with_operation(service: "reports", operation: "upcoming", is_mutation: false) do http_get("/reports/schedules/upcoming.json", params: compact_query_params(window_starts_on: window_starts_on, window_ends_on: window_ends_on), operation: "GetUpcomingSchedule").json end end |