class HerokuAPIStub::ServiceStub

Private Instance Methods

check_authorized!() click to toggle source
# File lib/heroku_api_stub/service_stub.rb, line 12
def check_authorized!
  if !request.env["HTTP_AUTHORIZATION"] ||
    !(request.env["HTTP_AUTHORIZATION"] =~ /\A(Basic|Bearer)\s+(.*)/)
    halt(401, MultiJson.encode(
      id:      "unauthorized",
      message: "Access denied."
    ))
  end
end
check_version!() click to toggle source
# File lib/heroku_api_stub/service_stub.rb, line 22
def check_version!
  if request.env["HTTP_ACCEPT"] != "application/vnd.heroku+json; version=3"
    halt(404, MultiJson.encode(
      id:      "not_found",
      message: "Not found."
    ))
  end
end
materialize_keys(hash, prefix="") click to toggle source
# File lib/heroku_api_stub/service_stub.rb, line 31
def materialize_keys(hash, prefix="")
  keys = []
  hash.each do |k, v|
    if v.is_a?(Hash)
      keys += materialize_keys(v, "#{prefix}#{k}:")
    else
      keys << prefix + k
    end
  end
  keys
end
require_params!(required) click to toggle source
# File lib/heroku_api_stub/service_stub.rb, line 43
def require_params!(required)
  missing = required - @keys
  halt(400, MultiJson.encode(
    id:      "invalid_params",
    message: "Require params: #{missing.join(', ')}."
  )) if missing.size > 0
end
validate_params!(optional) click to toggle source
# File lib/heroku_api_stub/service_stub.rb, line 51
def validate_params!(optional)
  extra = @keys - optional
  halt(400, MultiJson.encode(
    id:      "invalid_params",
    message: "Unknown params: #{extra.join(', ')}."
  )) if extra.size > 0
end