Implement /rpc_server_snapshot endpoint
This returns a JSON snapshot of the state of the server
This commit is contained in:
parent
6a32d55d85
commit
742dd75041
6 changed files with 68 additions and 8 deletions
|
@ -1,7 +1,7 @@
|
|||
use crate::{
|
||||
auth,
|
||||
db::{User, UserId},
|
||||
rpc::ResultExt,
|
||||
rpc::{self, ResultExt},
|
||||
AppState, Error, Result,
|
||||
};
|
||||
use anyhow::anyhow;
|
||||
|
@ -15,11 +15,12 @@ use axum::{
|
|||
Extension, Json, Router,
|
||||
};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde_json::Value;
|
||||
use std::sync::Arc;
|
||||
use tower::ServiceBuilder;
|
||||
use tracing::instrument;
|
||||
|
||||
pub fn routes(rpc_server: &Arc<crate::rpc::Server>, state: Arc<AppState>) -> Router<Body> {
|
||||
pub fn routes(rpc_server: &Arc<rpc::Server>, state: Arc<AppState>) -> Router<Body> {
|
||||
Router::new()
|
||||
.route("/users", get(get_users).post(create_user))
|
||||
.route(
|
||||
|
@ -29,6 +30,7 @@ pub fn routes(rpc_server: &Arc<crate::rpc::Server>, state: Arc<AppState>) -> Rou
|
|||
.route("/users/:id/access_tokens", post(create_access_token))
|
||||
.route("/invite_codes/:code", get(get_user_for_invite_code))
|
||||
.route("/panic", post(trace_panic))
|
||||
.route("/rpc_server_snapshot", get(get_rpc_server_snapshot))
|
||||
.layer(
|
||||
ServiceBuilder::new()
|
||||
.layer(Extension(state))
|
||||
|
@ -84,7 +86,7 @@ struct CreateUserParams {
|
|||
async fn create_user(
|
||||
Json(params): Json<CreateUserParams>,
|
||||
Extension(app): Extension<Arc<AppState>>,
|
||||
Extension(rpc_server): Extension<Arc<crate::rpc::Server>>,
|
||||
Extension(rpc_server): Extension<Arc<rpc::Server>>,
|
||||
) -> Result<Json<User>> {
|
||||
println!("{:?}", params);
|
||||
|
||||
|
@ -177,6 +179,12 @@ async fn trace_panic(panic: Json<Panic>) -> Result<()> {
|
|||
Ok(())
|
||||
}
|
||||
|
||||
async fn get_rpc_server_snapshot<'a>(
|
||||
Extension(rpc_server): Extension<Arc<rpc::Server>>,
|
||||
) -> Result<Json<Value>> {
|
||||
Ok(Json(serde_json::to_value(rpc_server.snapshot().await)?))
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct CreateAccessTokenQueryParams {
|
||||
public_key: String,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue