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