class PactBroker::Diagnostic::Resources::Dependencies

Public Class Methods

new() click to toggle source
# File lib/pact_broker/diagnostic/resources/dependencies.rb, line 12
def initialize
  @return_status = 200
end

Public Instance Methods

allowed_methods() click to toggle source
# File lib/pact_broker/diagnostic/resources/dependencies.rb, line 16
def allowed_methods
  ["GET"]
end
content_types_provided() click to toggle source
# File lib/pact_broker/diagnostic/resources/dependencies.rb, line 20
def content_types_provided
  [["application/hal+json", :to_json]]
end
to_json() click to toggle source
# File lib/pact_broker/diagnostic/resources/dependencies.rb, line 24
def to_json
  ok, report = database_connectivity_status
  response.body = {
    "database" => report,
    "_links" => {
      "self" => {
        "href" => base_url + "/diagnostic/status/dependencies"
      }
    }
  }.to_json

  ok ? 200 : 500
end

Private Instance Methods

database_connectivity_status() click to toggle source
# File lib/pact_broker/diagnostic/resources/dependencies.rb, line 40
def database_connectivity_status
  begin
    valid = valid_database_connection?
    return valid, { "ok" => valid }
  rescue => e
    logger.error "#{e.class} - #{e.message}\n#{e.backtrace.join("\n")}"
    report = {
      "ok" => false,
      "error" => {
        "message" => "#{e.class} - #{e.message}"
      }
    }
    return false, report
  end
end
valid_database_connection?() click to toggle source
# File lib/pact_broker/diagnostic/resources/dependencies.rb, line 56
def valid_database_connection?
  connection = PactBroker::DB.connection
  connection.synchronize do |synchronized_connection|
    connection.valid_connection? synchronized_connection
  end
end