Module: Xcal::Parktronic::Routes::Alarms
- Included in:
- Xcal::Parktronic::Routes
- Defined in:
- lib/xcal/parktronic/routes/alarms.rb
Instance Method Summary collapse
-
#get_alarm(id) ⇒ Object
(also: #alarm)
Fetches alarm with specific ID.
-
#get_paged_alarms(args = {}) ⇒ Object
(also: #alarms)
Fetches latest alarms.
-
#post_alarm(args = {}) ⇒ Object
Posts new alarm.
-
#update_alarm(id, params) ⇒ Object
Update alarm with specific ID.
Instance Method Details
#get_alarm(id) ⇒ Object Also known as: alarm
Fetches alarm with specific ID
Parameters
-
id
alarm ID
Examples
api.get_alarm(2)
36 37 38 39 40 41 |
# File 'lib/xcal/parktronic/routes/alarms.rb', line 36 def get_alarm(id) response = get_response("/#{api_version}/alarms/#{id}?access_token=#{access_token}") generic_response = Xcal::Parktronic::GenericResponse.new(response.body) response.code == '200' ? Xcal::Parktronic::GenericResponse.new(generic_response.alarm, self) : generic_response end |
#get_paged_alarms(args = {}) ⇒ Object Also known as: alarms
Fetches latest alarms
Parameters
-
page
page number, defaults to 1 -
per_page
per page value, defaults to 100
Examples
api.get_paged_alarms
api.get_paged_alarms(page: 2, per_page: 5)
api.alarms
api.alarms(page: 2, per_page: 5)
18 19 20 21 22 23 24 25 26 |
# File 'lib/xcal/parktronic/routes/alarms.rb', line 18 def get_paged_alarms(args = {}) args.merge!(:access_token => access_token) response = get_response("/#{api_version}/alarms?#{URI.encode_www_form(args)}") generic_response = Xcal::Parktronic::GenericResponse.new(response.body) response.code == '200' && generic_response.has_key?(:alarms) ? generic_response.alarms.map { |alarm| Xcal::Parktronic::GenericResponse.new(alarm.alarm, self) } : generic_response end |
#post_alarm(args = {}) ⇒ Object
Posts new alarm
Parameters
-
alarm
hash of Alarm data. -
events
array of Events or leave blank for creating alarm without events.
Examples
# Creates only Alarm, without Events
api.post_alarm(alarm: {name: 'alarm name', originating_system: 'Source System', impact_level: 'low'})
# Creates Alarm with Events
alarm_params = {name: 'alarm name', originating_system: 'Source System', impact_level: 'low'}
event_1_params = {subject: 'EventSubj', description: 'EventDesc', host_impacted: 'host', initiated_at: '2013-11-22T01:00:24Z', service_impacted: 'EventSvc', incident_status: 'CRITICAL'}
api.post_alarm( alarm: alarm_params, events: [event_1_params, event_2_params, ...] )
58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/xcal/parktronic/routes/alarms.rb', line 58 def post_alarm(args = {}) url_path = args[:events].nil? ? 'alarms/create_without_events' : 'alarms' request = Net::HTTP::Post.new("/#{api_version}/#{url_path}", 'Content-Type' => 'application/json') params = { access_token: access_token, alarm: args[:alarm] } params.merge!(events: args[:events]) unless args[:events].nil? request.body = params.to_json response = http.start { |net| net.request(request) } Xcal::Parktronic::GenericResponse.new(response.body) end |
#update_alarm(id, params) ⇒ Object
Update alarm with specific ID
Parameters
-
id
alarm ID -
params
alarm params
Examples
api.update_alarm(2, name: 'new name')
api.update_alarm(5, name: 'new name', originating_system: 'new system', description: 'test')
80 81 82 83 84 85 86 |
# File 'lib/xcal/parktronic/routes/alarms.rb', line 80 def update_alarm(id, params) request = Net::HTTP::Patch.new("/#{api_version}/alarms/#{id}", 'Content-Type' => 'application/json') request.body = { access_token: access_token, alarm: params }.to_json response = http.start { |net| net.request(request) } Xcal::Parktronic::GenericResponse.new(response.body) end |