Module: Xcal::Parktronic::Routes::Metrics
- Included in:
- Xcal::Parktronic::Routes
- Defined in:
- lib/xcal/parktronic/routes/metrics.rb
Instance Method Summary collapse
-
#get_metric(id) ⇒ Object
(also: #metric)
Fetches metric with specific ID.
-
#get_metric_by_name(name) ⇒ Object
(also: #metric_by_name)
Fetches metric with specific name.
-
#get_paged_metrics(args = {}) ⇒ Object
(also: #metrics)
Fetches latest metrics.
-
#post_metric(args = {}) ⇒ Object
Posts new metric.
-
#update_metric(id, params) ⇒ Object
Update metric with specific ID.
Instance Method Details
#get_metric(id) ⇒ Object Also known as: metric
Fetches metric with specific ID
Parameters
-
id
metric ID
Examples
api.get_metric(2)
38 39 40 41 42 43 |
# File 'lib/xcal/parktronic/routes/metrics.rb', line 38 def get_metric(id) response = get_response("/#{api_version}/metrics/#{id}?access_token=#{access_token}") generic_response = Xcal::Parktronic::GenericResponse.new(response.body) response.code == '200' ? Xcal::Parktronic::GenericResponse.new(generic_response.metric, self) : generic_response end |
#get_metric_by_name(name) ⇒ Object Also known as: metric_by_name
Fetches metric with specific name
Parameters
-
name
metric name
Examples
api.get_metric_by_name('Errors Summary')
53 54 55 56 57 58 |
# File 'lib/xcal/parktronic/routes/metrics.rb', line 53 def get_metric_by_name(name) response = get_response("/#{api_version}/metrics/by_name?#{URI.encode_www_form(access_token: access_token, name: name)}") generic_response = Xcal::Parktronic::GenericResponse.new(response.body) response.code == '200' ? Xcal::Parktronic::GenericResponse.new(generic_response.metric, self) : generic_response end |
#get_paged_metrics(args = {}) ⇒ Object Also known as: metrics
Fetches latest metrics
Parameters
-
page
page number, defaults to 1 -
per_page
per page value, defaults to 100
Examples
api.get_paged_metrics
api.metrics
api.metrics(page: 2, per_page: 5)
17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/xcal/parktronic/routes/metrics.rb', line 17 def get_paged_metrics(args = {}) args.merge!(:access_token => access_token) response = get_response("/#{api_version}/metrics?#{URI.encode_www_form(args)}") generic_response = Xcal::Parktronic::GenericResponse.new(response.body) if response.code == '200' generic_response.metrics.map { |metric| Xcal::Parktronic::GenericResponse.new(metric.metric, self) } else generic_response end end |
#post_metric(args = {}) ⇒ Object
Posts new metric
Parameters
-
metric
hash of Metric data. -
metric_values
array of Metric Values. -
device_errors
array of Device Errors.
Examples
metric_params = { name: 'metric name', description: 'metric description', created_at: Time.now }
metric_value_1 = { value: 2, custom_timestamp: (Time.now - 240)}
metric_value_2 = { value: 4, custom_timestamp: (Time.now - 120)}
device_error_1 = { timestamp: (Time.now() - 120), value: 5}
api.post_metric( metric: metric_params, metric_values: [metric_value_1, metric_value_2], device_error: [device_error_1] )
75 76 77 78 79 80 81 |
# File 'lib/xcal/parktronic/routes/metrics.rb', line 75 def post_metric(args = {}) request = Net::HTTP::Post.new("/#{api_version}/metrics", 'Content-Type' => 'application/json') request.body = { access_token: access_token, metric: args[:metric], metric_values: args[:metric_values], device_errors: [args[:device_errors]] }.to_json response = http.start { |net| net.request(request) } Xcal::Parktronic::GenericResponse.new(response.body) end |
#update_metric(id, params) ⇒ Object
Update metric with specific ID
Parameters
-
id
metric ID -
params
metric params
Examples
api.update_metric(2, description: 'new description')
91 92 93 94 95 96 97 |
# File 'lib/xcal/parktronic/routes/metrics.rb', line 91 def update_metric(id, params) request = Net::HTTP::Patch.new("/#{api_version}/metrics/#{id}", 'Content-Type' => 'application/json') request.body = { access_token: access_token, metric: params }.to_json response = http.start { |net| net.request(request) } Xcal::Parktronic::GenericResponse.new(response.body) end |