Lines
0 %
Functions
Branches
100 %
use axum::{Extension, Json, extract::Query, http::StatusCode};
use serde::Deserialize;
use crate::jwt_auth::JWTAuthMiddleware;
pub async fn transaction_tag_names(
Extension(jwt_auth): Extension<JWTAuthMiddleware>,
) -> Result<Json<Vec<String>>, (StatusCode, Json<serde_json::Value>)> {
let user = &jwt_auth.user;
let server_user = server::user::User { id: user.id };
match server_user.list_transaction_tag_names().await {
Ok(names) => Ok(Json(names)),
Err(e) => {
let error_response = serde_json::json!({
"status": "fail",
"message": "Failed to fetch transaction tag names",
});
log::error!("Failed to fetch transaction tag names: {e:?}");
Err((StatusCode::INTERNAL_SERVER_ERROR, Json(error_response)))
}
#[derive(Deserialize)]
pub struct TagValuesQuery {
name: String,
pub async fn transaction_tag_values(
Query(query): Query<TagValuesQuery>,
match server_user.list_transaction_tag_values(&query.name).await {
Ok(values) => Ok(Json(values)),
"message": "Failed to fetch transaction tag values",
log::error!(
"Failed to fetch transaction tag values for '{}': {e:?}",
query.name
);
pub async fn split_tag_names(
match server_user.list_split_tag_names().await {
"message": "Failed to fetch split tag names",
log::error!("Failed to fetch split tag names: {e:?}");
pub async fn split_tag_values(
match server_user.list_split_tag_values(&query.name).await {
"message": "Failed to fetch split tag values",
"Failed to fetch split tag values for '{}': {e:?}",