This commit is contained in:
Lheorvine 2025-06-01 18:27:15 +02:00
parent 5e0a3cfabe
commit 6492b4c171
3 changed files with 2 additions and 10 deletions

View file

@ -59,7 +59,6 @@ pub async fn login(
if verify(&form.haslo, &user.haslo).map_err(|_| AppError::InternalServerError("Błąd serwera".to_string()))? { if verify(&form.haslo, &user.haslo).map_err(|_| AppError::InternalServerError("Błąd serwera".to_string()))? {
let token = format!("user-{}-token", user.id); let token = format!("user-{}-token", user.id);
// Utwórz ciasteczko
let cookie = Cookie::build("auth_token", &token) let cookie = Cookie::build("auth_token", &token)
.path("/") .path("/")
.max_age(actix_web::cookie::time::Duration::days(7)) .max_age(actix_web::cookie::time::Duration::days(7))
@ -73,7 +72,6 @@ pub async fn login(
imie: user.imie, imie: user.imie,
}); });
// Poprawiona obsługa błędów dla add_cookie
response.add_cookie(&cookie) response.add_cookie(&cookie)
.map_err(|e| { .map_err(|e| {
log::error!("Błąd ustawiania ciasteczka: {}", e); log::error!("Błąd ustawiania ciasteczka: {}", e);
@ -88,7 +86,6 @@ pub async fn login(
#[post("/logout")] #[post("/logout")]
pub async fn logout() -> impl Responder { pub async fn logout() -> impl Responder {
// Utwórz ciasteczko z datą wygaśnięcia w przeszłości
let cookie = Cookie::build("auth_token", "") let cookie = Cookie::build("auth_token", "")
.path("/") .path("/")
.max_age(actix_web::cookie::time::Duration::seconds(0)) .max_age(actix_web::cookie::time::Duration::seconds(0))
@ -105,7 +102,6 @@ pub async fn logout() -> impl Responder {
} }
pub async fn validate_token(req: &HttpRequest) -> Result<i32, AppError> { pub async fn validate_token(req: &HttpRequest) -> Result<i32, AppError> {
// Pobierz ciasteczko
let cookie = req.cookie("auth_token") let cookie = req.cookie("auth_token")
.ok_or_else(|| AppError::Unauthorized("Unauthorized".to_string()))?; .ok_or_else(|| AppError::Unauthorized("Unauthorized".to_string()))?;

View file

@ -6,7 +6,7 @@ use crate::auth::validate_token;
use bigdecimal::BigDecimal; use bigdecimal::BigDecimal;
use serde_json::json; use serde_json::json;
use log; use log;
use std::str::FromStr; // Dodane use std::str::FromStr;
use crate::models::CartQuantityUpdate; use crate::models::CartQuantityUpdate;
#[get("/api/cart")] #[get("/api/cart")]
@ -106,12 +106,10 @@ pub async fn checkout(
AppError::InternalServerError("Błąd serwera".to_string()) AppError::InternalServerError("Błąd serwera".to_string())
})?; })?;
// Konwersja f64 na BigDecimal
let total_str = format!("{:.2}", data.total); let total_str = format!("{:.2}", data.total);
let total_bigdecimal = BigDecimal::from_str(&total_str) let total_bigdecimal = BigDecimal::from_str(&total_str)
.map_err(|_| AppError::BadRequest("Invalid total value".to_string()))?; .map_err(|_| AppError::BadRequest("Invalid total value".to_string()))?;
// 1. Utwórz zamówienie z typem dostawy
let order_record = sqlx::query!( let order_record = sqlx::query!(
"INSERT INTO zamowienia (user_id, suma_totalna, typ_dostawy) "INSERT INTO zamowienia (user_id, suma_totalna, typ_dostawy)
VALUES ($1, $2, $3) RETURNING id", VALUES ($1, $2, $3) RETURNING id",
@ -128,7 +126,6 @@ pub async fn checkout(
let order_id = order_record.id; let order_id = order_record.id;
// 2. Dodaj pozycje zamówienia
for item in &data.items { for item in &data.items {
let book = sqlx::query!( let book = sqlx::query!(
"SELECT cena FROM ksiazki WHERE id = $1", "SELECT cena FROM ksiazki WHERE id = $1",
@ -157,7 +154,6 @@ pub async fn checkout(
})?; })?;
} }
// 3. Wyczyść koszyk
sqlx::query!( sqlx::query!(
"DELETE FROM koszyk WHERE user_id = $1", "DELETE FROM koszyk WHERE user_id = $1",
user_id user_id

View file

@ -77,5 +77,5 @@ pub struct CartQuantityUpdate {
pub struct CheckoutRequest { pub struct CheckoutRequest {
pub items: Vec<CartItem>, pub items: Vec<CartItem>,
pub total: f64, pub total: f64,
pub delivery_type: String, // "shipping" lub "local" pub delivery_type: String,
} }