add: user settings

fix: actually use cached stuff in auto_method macro
add: profile ui base
This commit is contained in:
trisua 2025-03-25 23:58:27 -04:00
parent 8580e34be2
commit 7d96a3d20f
16 changed files with 222 additions and 8 deletions
crates/core/src/database

View file

@ -50,6 +50,10 @@ macro_rules! auto_method {
($name:ident()@$select_fn:ident -> $query:literal --name=$name_:literal --returns=$returns_:tt --cache-key-tmpl=$cache_key_tmpl:literal) => {
pub async fn $name(&self, id: usize) -> Result<$returns_> {
if let Some(cached) = self.2.get(format!($cache_key_tmpl, id)).await {
return Ok(serde_json::from_str(&cached).unwrap());
}
let conn = match self.connect().await {
Ok(c) => c,
Err(e) => return Err(Error::DatabaseConnection(e.to_string())),
@ -94,6 +98,10 @@ macro_rules! auto_method {
($name:ident($selector_t:ty)@$select_fn:ident -> $query:literal --name=$name_:literal --returns=$returns_:tt --cache-key-tmpl=$cache_key_tmpl:literal) => {
pub async fn $name(&self, selector: $selector_t) -> Result<$returns_> {
if let Some(cached) = self.2.get(format!($cache_key_tmpl, selector)).await {
return Ok(serde_json::from_str(&cached).unwrap());
}
let conn = match self.connect().await {
Ok(c) => c,
Err(e) => return Err(Error::DatabaseConnection(e.to_string())),