class EscalationPolicy

Public Instance Methods

add_escalation_rule(options={}) click to toggle source
# File lib/pagerduty/models/escalationpolicies.rb, line 107
def add_escalation_rule(options={})
  EscalationRule.new(JSON.parse(curl({
    uri: "https://#@@subdomain.pagerduty.com/api/v1/escalation_policies/#{self.id}/escalation_rules",
    data: { escalation_rule: options.hashify },
    method: 'POST'
  }).body)['escalation_rule'])
end
delete() click to toggle source
# File lib/pagerduty/models/escalationpolicies.rb, line 96
def delete
  res = curl({
    uri: "https://#@@subdomain.pagerduty.com/api/v1/escalation_policies/#{self.id}",
    method: 'DELETE',
    raw_response: true
  })

  res.code == '204' ? 'Successfully deleted policy' : JSON.parse(res.body)

end
refresh() click to toggle source
# File lib/pagerduty/models/escalationpolicies.rb, line 125
def refresh
  self.attributes = get_escalation_policy(id: self.id)
end
save() click to toggle source
# File lib/pagerduty/models/escalationpolicies.rb, line 82
def save
  self.escalation_rules = self.escalation_rules.map { |rule|
    rule.class == EscalationRule ? rule.hashify : rule
  }

  saved_policy = EscalationPolicy.new(JSON.parse(curl({
    uri: "https://#@@subdomain.pagerduty.com/api/v1/escalation_policies/#{self.id}",
    data: { escalation_policy: self.attributes },
    method: 'PUT'
  }).body)['escalation_policy'])

  self.attributes = saved_policy.attributes
end
update_escalation_rules(options={}) click to toggle source
# File lib/pagerduty/models/escalationpolicies.rb, line 115
def update_escalation_rules(options={})
  options[:rules] = options[:rules].map { |rule| rule.class == EscalationRule ? rule.hashify : rule }

  JSON.parse(curl({
    uri: "https://#@@subdomain.pagerduty.com/api/v1/escalation_policies/#{self.id}/escalation_rules",
    data: { escalation_rules: options[:rules] },
    method: 'PUT'
  }).body)
end