diff --git a/src/api.rs b/src/api.rs index 08cd26b..68bd9cd 100644 --- a/src/api.rs +++ b/src/api.rs @@ -114,22 +114,6 @@ pub async fn get_items_by_url( } } -#[cfg(feature = "ssr")] -pub async fn create_item_by_url( - db: web::Data>>, - url: web::Path, - item: web::Json, -) -> HttpResponse { - let db = db.lock().await; - match db.insert_item_by_url(&url, &item.into_inner()).await { - Ok(_) => HttpResponse::Ok().body("Item inserted"), - Err(err) => { - leptos::logging::error!("Failed to insert item by URL: {:?}", err); - HttpResponse::InternalServerError().body("Failed to insert item by URL") - } - } -} - #[cfg(feature = "ssr")] pub async fn delete_item_by_url( db: web::Data>>, diff --git a/src/main.rs b/src/main.rs index 7a2a49b..bb66ad5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -42,15 +42,15 @@ async fn main() -> std::io::Result<()> { App::new() .app_data(web::Data::new(db.clone())) - .route("/{url}/items", web::get().to(get_items_handler)) - .route("/{url}/items", web::post().to(create_item_handler)) - .route("/{url}/items/{item_id}", web::delete().to(delete_item_handler)) // Register custom API routes BEFORE Leptos server functions .service( web::scope("/api") - .route("/items", web::get().to(get_items)) // GET /api/items - .route("/items", web::post().to(create_item)) // POST /api/items - .route("/items/{id}", web::delete().to(delete_item)) // DELETE /api/items/{id} + .service( + web::scope("/urls/{url}") + .route("/items", web::get().to(get_items_handler)) // GET items by URL + .route("/items", web::post().to(create_item_handler)) // Create item for URL + .route("/items/{item_id}", web::delete().to(delete_item_handler)) // Delete item + ) .route("/properties/{property}", web::delete().to(delete_property)), // DELETE /api/properties/{property} ) // Register server functions @@ -88,12 +88,11 @@ async fn get_items_handler( // Handler to create an item for a specific URL async fn create_item_handler( db: web::Data>>, - path: web::Path, + url: web::Path, item: web::Json, ) -> impl Responder { - let url = path.into_inner(); let request = ItemRequest { - url, + url: url.into_inner(), item: item.into_inner() }; create_item(db, web::Json(request)).await