From 8a58774359c2a5f1ac9d1f862b42f1f800175842 Mon Sep 17 00:00:00 2001 From: Radical Date: Sun, 20 Jul 2025 20:25:15 +0200 Subject: [PATCH] fix: get cache correctly from redis --- src/api/v1/channels/mod.rs | 6 ++++-- src/api/v1/guilds/uuid/channels.rs | 3 ++- src/api/v1/guilds/uuid/roles/mod.rs | 6 ++++-- src/api/v1/guilds/uuid/roles/uuid.rs | 6 ++++-- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/api/v1/channels/mod.rs b/src/api/v1/channels/mod.rs index 41d029a..fa90ccd 100644 --- a/src/api/v1/channels/mod.rs +++ b/src/api/v1/channels/mod.rs @@ -1,11 +1,13 @@ use std::sync::Arc; use axum::{ - middleware::from_fn_with_state, routing::{any, delete, get, patch}, Router + Router, + middleware::from_fn_with_state, + routing::{any, delete, get, patch}, }; //use socketioxide::SocketIo; -use crate::{api::v1::auth::CurrentUser, AppState}; +use crate::{AppState, api::v1::auth::CurrentUser}; mod uuid; diff --git a/src/api/v1/guilds/uuid/channels.rs b/src/api/v1/guilds/uuid/channels.rs index 836982d..82368b9 100644 --- a/src/api/v1/guilds/uuid/channels.rs +++ b/src/api/v1/guilds/uuid/channels.rs @@ -35,8 +35,9 @@ pub async fn get( if let Ok(cache_hit) = app_state .get_cache_key(format!("{guild_uuid}_channels")) .await + && let Ok(channels) = serde_json::from_str::>(&cache_hit) { - return Ok((StatusCode::OK, Json(cache_hit)).into_response()); + return Ok((StatusCode::OK, Json(channels)).into_response()); } let channels = Channel::fetch_all(&app_state.pool, guild_uuid).await?; diff --git a/src/api/v1/guilds/uuid/roles/mod.rs b/src/api/v1/guilds/uuid/roles/mod.rs index 820ef0d..0e496a0 100644 --- a/src/api/v1/guilds/uuid/roles/mod.rs +++ b/src/api/v1/guilds/uuid/roles/mod.rs @@ -35,8 +35,10 @@ pub async fn get( Member::check_membership(&mut conn, uuid, guild_uuid).await?; - if let Ok(cache_hit) = app_state.get_cache_key(format!("{guild_uuid}_roles")).await { - return Ok((StatusCode::OK, Json(cache_hit)).into_response()); + if let Ok(cache_hit) = app_state.get_cache_key(format!("{guild_uuid}_roles")).await + && let Ok(roles) = serde_json::from_str::>(&cache_hit) + { + return Ok((StatusCode::OK, Json(roles)).into_response()); } let roles = Role::fetch_all(&mut conn, guild_uuid).await?; diff --git a/src/api/v1/guilds/uuid/roles/uuid.rs b/src/api/v1/guilds/uuid/roles/uuid.rs index 06193a1..732d553 100644 --- a/src/api/v1/guilds/uuid/roles/uuid.rs +++ b/src/api/v1/guilds/uuid/roles/uuid.rs @@ -27,8 +27,10 @@ pub async fn get( Member::check_membership(&mut conn, uuid, guild_uuid).await?; - if let Ok(cache_hit) = app_state.get_cache_key(format!("{role_uuid}")).await { - return Ok((StatusCode::OK, Json(cache_hit)).into_response()); + if let Ok(cache_hit) = app_state.get_cache_key(format!("{role_uuid}")).await + && let Ok(role) = serde_json::from_str::(&cache_hit) + { + return Ok((StatusCode::OK, Json(role)).into_response()); } let role = Role::fetch_one(&mut conn, role_uuid).await?;