Added web ui with templates

This commit is contained in:
Manuel Forcén Muñoz 2024-02-19 23:51:18 +01:00
parent d2cb5b3031
commit 90b02eef79
24 changed files with 1403 additions and 78 deletions

View file

@ -1,43 +1,3 @@
use std::sync::Arc;
use axum::extract::{Json, State};
use hyper::StatusCode;
use serde::Deserialize;
use sqlx::SqlitePool;
use accounters::models::users::User;
pub mod accounts;
pub mod categories;
pub mod rules;
pub mod transactions;
#[derive(Deserialize)]
pub struct CreateUserRequest {
user: String,
pass: String,
}
pub async fn create_user(
State(db): State<Arc<SqlitePool>>,
Json(user_info): Json<CreateUserRequest>,
) -> (StatusCode, String) {
let exec = User::create_user(db.as_ref(), &user_info.user, &user_info.pass).await;
match exec {
Ok(e) => (StatusCode::OK, format!("{}", e.get_id())),
Err(e) => (StatusCode::INTERNAL_SERVER_ERROR, format!("{e:?}")),
}
}
pub async fn login(
State(db): State<Arc<SqlitePool>>,
Json(user_info): Json<CreateUserRequest>,
) -> (StatusCode, String) {
let user = User::get_user(db.as_ref(), &user_info.user).await.unwrap();
if user.check_pass(&user_info.pass) {
(StatusCode::OK, format!("{}", user.get_id()))
} else {
(StatusCode::UNAUTHORIZED, String::new())
}
}
pub mod api;
pub mod static_routes;
pub mod ui;