Class: Basecamp::Services::ReportsService

Inherits:
BaseService
  • Object
show all
Defined in:
lib/basecamp/generated/services/reports_service.rb

Overview

Service for Reports operations

Instance Method Summary collapse

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

Parameters:

  • person_id (Integer)

    person id ID

  • group_by (String, nil) (defaults to: nil)

    Group by "bucket" or "date"

Returns:

  • (Hash)

    response data



32
33
34
35
36
# File 'lib/basecamp/generated/services/reports_service.rb', line 32

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)).json
  end
end

#overdueHash

Get overdue todos grouped by lateness

Returns:

  • (Hash)

    response data



40
41
42
43
44
# File 'lib/basecamp/generated/services/reports_service.rb', line 40

def overdue()
  with_operation(service: "reports", operation: "overdue", is_mutation: false) do
    http_get("/reports/todos/overdue.json").json
  end
end

#person_progress(person_id:) ⇒ Hash

Get a person's activity timeline

Parameters:

  • person_id (Integer)

    person id ID

Returns:

  • (Hash)

    response data



49
50
51
52
53
# File 'lib/basecamp/generated/services/reports_service.rb', line 49

def person_progress(person_id:)
  wrap_paginated_wrapped(key: "events", service: "reports", operation: "person_progress", is_mutation: false, resource_id: person_id) do
    paginate_wrapped("/reports/users/progress/#{person_id}.json", key: "events")
  end
end

#progressEnumerator<Hash>

Get account-wide activity feed (progress report)

Returns:

  • (Enumerator<Hash>)

    paginated results



12
13
14
15
16
# File 'lib/basecamp/generated/services/reports_service.rb', line 12

def progress()
  wrap_paginated(service: "reports", operation: "progress", is_mutation: false) do
    paginate("/reports/progress.json")
  end
end

#upcoming(window_starts_on: nil, window_ends_on: nil) ⇒ Hash

Get upcoming schedule entries and assignable items within a date window.

Parameters:

  • window_starts_on (String, nil) (defaults to: nil)

    window starts on

  • window_ends_on (String, nil) (defaults to: nil)

    window ends on

Returns:

  • (Hash)

    response data



22
23
24
25
26
# File 'lib/basecamp/generated/services/reports_service.rb', line 22

def upcoming(window_starts_on: nil, window_ends_on: nil)
  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)).json
  end
end