Class: RailsHealthChecks::ResponseBuilder
- Inherits:
-
Object
- Object
- RailsHealthChecks::ResponseBuilder
- Defined in:
- lib/rails_health_checks/response_builder.rb
Instance Method Summary collapse
- #http_status ⇒ Object
-
#initialize(results) ⇒ ResponseBuilder
constructor
A new instance of ResponseBuilder.
- #overall_status ⇒ Object
- #to_json ⇒ Object
Constructor Details
#initialize(results) ⇒ ResponseBuilder
Returns a new instance of ResponseBuilder.
5 6 7 |
# File 'lib/rails_health_checks/response_builder.rb', line 5 def initialize(results) @results = results end |
Instance Method Details
#http_status ⇒ Object
31 32 33 |
# File 'lib/rails_health_checks/response_builder.rb', line 31 def http_status overall_status == "ok" ? :ok : :service_unavailable end |
#overall_status ⇒ Object
9 10 11 12 13 14 15 16 17 18 |
# File 'lib/rails_health_checks/response_builder.rb', line 9 def overall_status statuses = @results.values.map(&:status) if statuses.include?("critical") "critical" elsif statuses.include?("degraded") "degraded" else "ok" end end |
#to_json ⇒ Object
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/rails_health_checks/response_builder.rb', line 20 def to_json(*) checks_hash = @results.transform_values do |check| result = { status: check.status } result[:latency_ms] = check.latency_ms if check.latency_ms result[:message] = check. if check. result end { status: overall_status, timestamp: Time.now.utc.iso8601, checks: checks_hash }.to_json end |