From 8e3c87f315711afe4d13a18f76eaeeb243e2cade Mon Sep 17 00:00:00 2001 From: ryan Date: Tue, 18 Feb 2025 23:43:38 +0300 Subject: [PATCH] feat(main): edit main function and API handlers * Removed redundant imports and unused variables * Simplified `create_item_handler` to use `ItemRequest` struct * Removed unnecessary cloning of database Arc * Improved code organization and readability --- src/main.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main.rs b/src/main.rs index a600a7c..b76ed94 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,9 +1,9 @@ #[cfg(feature = "ssr")] -use actix_web::{web, App, HttpServer, HttpResponse, Responder}; +use actix_web::{web, HttpResponse, Responder}; use std::sync::Arc; use tokio::sync::Mutex; use compareware::db::{Database, DbItem}; -use compareware::api::{create_item, get_items, delete_item_by_url}; +use compareware::api::{ItemRequest,create_item, get_items, delete_item_by_url}; #[actix_web::main] async fn main() -> std::io::Result<()> { @@ -12,7 +12,7 @@ async fn main() -> std::io::Result<()> { use leptos::*; use leptos_actix::{generate_route_list, LeptosRoutes}; use compareware::app::*; - use compareware::db::{Database, DbItem}; + use compareware::db::Database; use compareware::api::{get_items, create_item, delete_item, delete_property, delete_item_by_url, delete_property_by_url, create_item_by_url, get_items_by_url}; // Import API handlers use std::sync::Arc; use tokio::sync::Mutex; @@ -85,10 +85,15 @@ async fn get_items_handler( // Handler to create an item for a specific URL async fn create_item_handler( db: web::Data>>, - url: web::Path, + path: web::Path, item: web::Json, ) -> impl Responder { - create_item(db, web::Query(url.into_inner()), item).await + let url = path.into_inner(); + let request = ItemRequest { + url, + item: item.into_inner() + }; + create_item(db, web::Json(request)).await } // Handler to delete an item for a specific URL