From c4f820e11496be4674077ca7106415eb4a0d4140 Mon Sep 17 00:00:00 2001 From: alyssa Date: Sun, 21 Dec 2025 17:33:04 -0500 Subject: [PATCH] oops --- crates/api/src/endpoints/private.rs | 27 +++++++++++++++++++++++++-- crates/api/src/main.rs | 1 + 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/crates/api/src/endpoints/private.rs b/crates/api/src/endpoints/private.rs index 7131c0c7..8e3e3b45 100644 --- a/crates/api/src/endpoints/private.rs +++ b/crates/api/src/endpoints/private.rs @@ -1,5 +1,9 @@ use crate::{ApiContext, auth::AuthState, error::fail}; -use axum::{Extension, extract::State, response::Json}; +use axum::{ + Extension, + extract::{Path, State}, + response::Json, +}; use fred::interfaces::*; use libpk::state::ShardState; use pk_macros::api_endpoint; @@ -201,7 +205,9 @@ pub enum DashViewRequest { name: Option, value: Option, }, - Remove { id: String }, + Remove { + id: String, + }, } #[api_endpoint] @@ -294,3 +300,20 @@ pub async fn dash_views( } } } + +#[api_endpoint] +pub async fn dash_view(State(ctx): State, Path(id): Path) -> Json { + match sqlx::query_as::("select * from dash_views where id = $1") + .bind(id) + .fetch_optional(&ctx.db) + .await + { + Ok(val) => { + let Some(val) = val else { + return Err(crate::error::GENERIC_BAD_REQUEST); + }; + Ok(Json(val.to_json())) + } + Err(err) => fail!(?err, "failed to query dash views"), + } +} diff --git a/crates/api/src/main.rs b/crates/api/src/main.rs index f22af0b0..b69a304c 100644 --- a/crates/api/src/main.rs +++ b/crates/api/src/main.rs @@ -124,6 +124,7 @@ fn router(ctx: ApiContext) -> Router { .route("/private/discord/callback2", post(endpoints::private::discord_callback)) .route("/private/discord/shard_state", get(endpoints::private::discord_state)) .route("/private/dash_views", post(endpoints::private::dash_views)) + .route("/private/dash_view/{id}", get(endpoints::private::dash_view)) .route("/private/stats", get(endpoints::private::meta)) .route("/v2/systems/{system_id}/oembed.json", get(rproxy))