Leptos updated to 0.6.5

This commit is contained in:
2024-02-05 15:50:22 +01:00
parent e69db7f40b
commit 88ac17008c
6 changed files with 235 additions and 222 deletions
+3 -8
View File
@@ -7,6 +7,7 @@ use crate::components::data_form::ForValidation;
cfg_if! { if #[cfg(feature = "ssr")] {
use sqlx::{query_as, PgPool, query};
use crate::error::AppError;
use crate::backend::get_pool;
use log::info;
pub async fn check_company(pool: &PgPool) -> Result<(), AppError> {
@@ -26,14 +27,11 @@ cfg_if! { if #[cfg(feature = "ssr")] {
#[server(GetCompany, "/api", "Url", "get_company")]
pub async fn get_company() -> Result<ApiResponse<Company>, ServerFnError> {
use crate::backend::AppData;
use actix_web::web::Data;
use leptos_actix::extract;
use crate::perm_check;
perm_check!(is_logged_in);
let pool = extract(|data: Data<AppData>| async move { data.db_pool().clone() }).await?;
let pool = get_pool().await?;
let cmp = sqlx::query_as::<_, Company>("SELECT * FROM company")
.fetch_one(&pool)
@@ -44,14 +42,11 @@ pub async fn get_company() -> Result<ApiResponse<Company>, ServerFnError> {
#[server(UpdateCompany, "/api", "Url", "update_company")]
pub async fn update_company(company: Company) -> Result<ApiResponse<()>, ServerFnError> {
use crate::backend::AppData;
use actix_web::web::Data;
use leptos_actix::extract;
use crate::perm_check;
perm_check!(is_admin);
let pool = extract(|data: Data<AppData>| async move { data.db_pool().clone() }).await?;
let pool = get_pool().await?;
sqlx::query(
"UPDATE company SET name = $1, street = $2, house_number = $3, zip_code = $4, city = $5 \
+2 -1
View File
@@ -72,7 +72,8 @@ cfg_if!{
}
pub async fn get_pool() -> Result<PgPool, ServerFnError> {
extract(|data: Data<AppData>| async move { data.db_pool().clone() }).await
let data = extract::<Data<AppData>>().await?;
Ok(data.db_pool().clone())
}
}
}
+14 -13
View File
@@ -42,9 +42,14 @@ cfg_if! { if #[cfg(feature = "ssr")] {
}
pub async fn logged_in_user() -> Option<User> {
extract(|session: Session| async move {
session.get::<User>("user").unwrap_or(None)
}).await.unwrap_or(None)
let session = extract::<Session>().await;
if session.is_err() {
return None
}
session.unwrap().get::<User>("user").unwrap_or(None)
/*let mut usr = User::default();
usr.full_name = Some("PokAdm".to_string());
usr.admin = true;
@@ -77,10 +82,8 @@ pub async fn login(username: String, password: String) -> Result<ApiResponse<()>
let user = user_from_login(&pool, &username).await.unwrap_or(User::default());
if !user.login.is_empty() && pwhash::bcrypt::verify(password, &user.password) {
extract(|session: Session| async move {
let _ = session.insert("user", user);
})
.await?;
let session = extract::<Session>().await?;
let _ = session.insert("user", user);
info!("User {} logged in", username);
@@ -97,9 +100,8 @@ pub async fn login(username: String, password: String) -> Result<ApiResponse<()>
#[server]
pub async fn logout() -> Result<(), ServerFnError> {
extract(|session: Session| async move {
session.clear();
}).await?;
let session = extract::<Session>().await?;
session.clear();
redirect("/login");
Ok(())
@@ -160,9 +162,8 @@ pub async fn update_profile(user: UserProfile) -> Result<ApiResponse<()>, Server
if logged_in_user().await.unwrap_or_default().login == user.login() {
let usr = user_from_login(&pool, user.login()).await?;
extract(|session: Session| async move {
let _ = session.insert("user", usr);
}).await?;
let session = extract::<Session>().await?;
let _ = session.insert("user", usr);
}
Ok(ApiResponse::Data(()))