41 lines
740 B
Ruby
41 lines
740 B
Ruby
require "sinatra"
|
|
|
|
# Authentication token
|
|
$token = "test"
|
|
|
|
# List of all availble resources
|
|
$resources = {
|
|
"id1" => "postgres://localhost:5432/db1?sslmode=disable",
|
|
"id2" => "postgres://localhost:5432/db2?sslmode=disable",
|
|
"id3" => "postgres://localhost:5432/db3?sslmode=disable"
|
|
}
|
|
|
|
helpers do
|
|
def error(code, message)
|
|
halt(code, JSON.dump(error: message))
|
|
end
|
|
end
|
|
|
|
before do
|
|
content_type :json
|
|
end
|
|
|
|
post "/" do
|
|
req = JSON.load(request.body) || {}
|
|
|
|
unless req["resource"]
|
|
halt 404, "Resource ID required"
|
|
end
|
|
|
|
# Check the resource
|
|
resource = $resources[req["resource"]]
|
|
if !resource
|
|
halt 404, "Invalid resource ID"
|
|
end
|
|
|
|
# Return connection credentials
|
|
JSON.dump(
|
|
database_url: resource
|
|
)
|
|
end
|