Class: Basecamp::Services::GaugesService

Inherits:
BaseService show all
Defined in:
lib/basecamp/generated/services/gauges_service.rb

Overview

Service for Gauges operations

Instance Method Summary collapse

Constructor Details

This class inherits a constructor from Basecamp::Services::BaseService

Instance Method Details

#create_gauge_needle(project_id:, gauge_needle:, notify: nil, subscriptions: nil) ⇒ Hash

Create a gauge needle (progress update) for a project

Parameters:

  • project_id (Integer)

    project id ID

  • gauge_needle (Hash)

    gauge needle

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

    Who to notify: "everyone", "working_on", "custom", or omit for nobody

  • subscriptions (Array, nil) (defaults to: nil)

    Array of people IDs to notify (only used when notify is "custom")

Returns:

  • (Hash)

    response data



68
69
70
71
72
# File 'lib/basecamp/generated/services/gauges_service.rb', line 68

def create_gauge_needle(project_id:, gauge_needle:, notify: nil, subscriptions: nil)
  with_operation(service: "gauges", operation: "create_gauge_needle", is_mutation: true, project_id: project_id) do
    http_post("/projects/#{project_id}/gauge/needles.json", body: compact_params(gauge_needle: gauge_needle, notify: notify, subscriptions: subscriptions)).json
  end
end

#destroy_gauge_needle(needle_id:) ⇒ void

This method returns an undefined value.

Destroy a gauge needle

Parameters:

  • needle_id (Integer)

    needle id ID



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

def destroy_gauge_needle(needle_id:)
  with_operation(service: "gauges", operation: "destroy_gauge_needle", is_mutation: true, resource_id: needle_id) do
    http_delete("/gauge_needles/#{needle_id}")
    nil
  end
end

#get_gauge_needle(needle_id:) ⇒ Hash

Get a gauge needle by ID

Parameters:

  • needle_id (Integer)

    needle id ID

Returns:

  • (Hash)

    response data



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

def get_gauge_needle(needle_id:)
  with_operation(service: "gauges", operation: "get_gauge_needle", is_mutation: false, resource_id: needle_id) do
    http_get("/gauge_needles/#{needle_id}", operation: "GetGaugeNeedle").json
  end
end

#list_gauge_needles(project_id:, page: nil, max_items: nil) ⇒ ListEnumerator<Hash>

List gauge needles for a project, ordered newest first.

Parameters:

  • project_id (Integer)

    project id ID

  • page (Integer, nil) (defaults to: nil)

    Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8.

  • max_items (Integer, nil) (defaults to: nil)

    cap on items yielded across pages; nil or non-positive means no cap

Returns:

  • (ListEnumerator<Hash>)

    lazily paginated results (#meta carries pagination metadata)



55
56
57
58
59
60
# File 'lib/basecamp/generated/services/gauges_service.rb', line 55

def list_gauge_needles(project_id:, page: nil, max_items: nil)
  wrap_paginated(service: "gauges", operation: "list_gauge_needles", is_mutation: false, project_id: project_id) do
    params = compact_query_params(page: page)
    paginate("/projects/#{project_id}/gauge/needles.json", params: params, operation: "ListGaugeNeedles", max_items: max_items)
  end
end

#list_gauges(bucket_ids: nil, page: nil, max_items: nil) ⇒ ListEnumerator<Hash>

List gauges across all projects the authenticated user has access to.

Parameters:

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

    Comma-separated list of project IDs. When provided, results are returned in the order specified instead of by risk level.

  • page (Integer, nil) (defaults to: nil)

    Page number for paginating through results. Defaults to 1. A positive value selects exactly that page, not a starting offset; see SPEC section 8.

  • max_items (Integer, nil) (defaults to: nil)

    cap on items yielded across pages; nil or non-positive means no cap

Returns:

  • (ListEnumerator<Hash>)

    lazily paginated results (#meta carries pagination metadata)



80
81
82
83
84
85
# File 'lib/basecamp/generated/services/gauges_service.rb', line 80

def list_gauges(bucket_ids: nil, page: nil, max_items: nil)
  wrap_paginated(service: "gauges", operation: "list_gauges", is_mutation: false) do
    params = compact_query_params(bucket_ids: bucket_ids, page: page)
    paginate("/reports/gauges.json", params: params, operation: "ListGauges", max_items: max_items)
  end
end

#toggle_gauge(project_id:, gauge:) ⇒ void

This method returns an undefined value.

Enable or disable the gauge for a project. Only project admins can toggle gauges.

Parameters:

  • project_id (Integer)

    project id ID

  • gauge (Hash)

    gauge



43
44
45
46
47
48
# File 'lib/basecamp/generated/services/gauges_service.rb', line 43

def toggle_gauge(project_id:, gauge:)
  with_operation(service: "gauges", operation: "toggle_gauge", is_mutation: true, project_id: project_id) do
    http_put("/projects/#{project_id}/gauge.json", body: compact_params(gauge: gauge))
    nil
  end
end

#update_gauge_needle(needle_id:, gauge_needle: nil) ⇒ Hash

Update a gauge needle's description. Position and color are immutable.

Parameters:

  • needle_id (Integer)

    needle id ID

  • gauge_needle (Hash, nil) (defaults to: nil)

    gauge needle

Returns:

  • (Hash)

    response data



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

def update_gauge_needle(needle_id:, gauge_needle: nil)
  with_operation(service: "gauges", operation: "update_gauge_needle", is_mutation: true, resource_id: needle_id) do
    http_put("/gauge_needles/#{needle_id}", body: compact_params(gauge_needle: gauge_needle)).json
  end
end