Line data Source code
1 : use std::sync::Arc;
2 :
3 : use axum::extract::State;
4 : use axum::response::Response;
5 : use http::StatusCode;
6 :
7 : use crate::catalog::get_dbs_and_roles;
8 : use crate::compute::ComputeNode;
9 : use crate::http::JsonResponse;
10 :
11 : /// Get the databases and roles from the compute.
12 0 : pub(in crate::http) async fn get_catalog_objects(
13 0 : State(compute): State<Arc<ComputeNode>>,
14 0 : ) -> Response {
15 0 : match get_dbs_and_roles(&compute).await {
16 0 : Ok(catalog_objects) => JsonResponse::success(StatusCode::OK, catalog_objects),
17 0 : Err(e) => JsonResponse::error(StatusCode::INTERNAL_SERVER_ERROR, e),
18 : }
19 0 : }
|