Class: RunscopeStatuspage::StatuspageAPI
- Inherits:
-
Object
- Object
- RunscopeStatuspage::StatuspageAPI
- Includes:
- HTTParty
- Defined in:
- lib/runscope_statuspage/statuspage_api.rb
Instance Method Summary collapse
-
#clear_metric_data(page_id, metric_id) ⇒ Object
Delete all data for a custom page metric.
-
#create_realtime_incident(page, name, msg, status, twitter) ⇒ Object
Create incident.
-
#initialize(token) ⇒ StatuspageAPI
constructor
Set credentials.
-
#push_metric_data(page_id, metric_id, data, timestamp) ⇒ Object
Publish data for a custom page metric.
Constructor Details
#initialize(token) ⇒ StatuspageAPI
Set credentials
11 12 13 |
# File 'lib/runscope_statuspage/statuspage_api.rb', line 11 def initialize(token) = { headers: {"Authorization" => "OAuth #{token}"} } end |
Instance Method Details
#clear_metric_data(page_id, metric_id) ⇒ Object
Delete all data for a custom page metric
40 41 42 43 44 45 |
# File 'lib/runscope_statuspage/statuspage_api.rb', line 40 def clear_metric_data(page_id, metric_id) reply = self.class.delete("/pages/#{page_id}/metrics/#{metric_id}/data.json", ) raise StatuspageAPIException.new, "Could not delete all data for #{page_id}/#{metric_id}: #{reply}" if reply.key?('error') end |
#create_realtime_incident(page, name, msg, status, twitter) ⇒ Object
Create incident
16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/runscope_statuspage/statuspage_api.rb', line 16 def create_realtime_incident(page, name, msg, status, twitter) incident = self.class.post("/pages/#{page}/incidents.json", .merge!(body: {"incident" => { "name" => name, "message" => msg, "status" => status.nil? ? 'investigating' : status, "wants_twitter_update" => twitter }})) raise StatuspageAPIException.new, "Could not create incident: #{incident}" if incident.key?('error') end |
#push_metric_data(page_id, metric_id, data, timestamp) ⇒ Object
Publish data for a custom page metric
29 30 31 32 33 34 35 36 37 |
# File 'lib/runscope_statuspage/statuspage_api.rb', line 29 def push_metric_data(page_id, metric_id, data, ) reply = self.class.post("/pages/#{page_id}/metrics/#{metric_id}/data.json", .merge!(body: {"data" => { "value" => data, "timestamp" => }})) raise StatuspageAPIException.new, "Could not push to #{page_id}/#{metric_id}: #{reply}" if reply.key?('error') end |