summaryrefslogtreecommitdiff
path: root/dichroism/src/handlers.rs
diff options
context:
space:
mode:
Diffstat (limited to 'dichroism/src/handlers.rs')
-rw-r--r--dichroism/src/handlers.rs40
1 files changed, 14 insertions, 26 deletions
diff --git a/dichroism/src/handlers.rs b/dichroism/src/handlers.rs
index 1f657c2..beecb72 100644
--- a/dichroism/src/handlers.rs
+++ b/dichroism/src/handlers.rs
@@ -1,6 +1,6 @@
-//use super::product_repo;
-use super::types::DbPool;
-//use crate::config::Config;
+use crate::dtos::*;
+use crate::product_repo;
+use crate::types::DbPool;
use actix_web::{get, patch, post, web, Error, HttpResponse, Responder};
#[get("/")]
@@ -9,24 +9,24 @@ async fn hello() -> impl Responder {
}
#[get("/products")]
-async fn get_products(_pool: web::Data<DbPool>) -> Result<HttpResponse, Error> {
- dbg!("got products");
- Ok(HttpResponse::Ok().finish())
- //let conn = pool.get().expect("Couldn't get DB connection from pool.");
- //let products = web::block(move || product_repo::read_products(&conn))
- // .await
- // .map_err(|e| {
- // eprintln!("{}", e);
- // HttpResponse::InternalServerError().finish()
- // })?;
+async fn get_products(pool: web::Data<DbPool>) -> Result<HttpResponse, Error> {
+ let conn = pool.get().expect("Couldn't get DB connection from pool.");
+ let products = web::block(move || product_repo::read_products(&conn))
+ .await
+ .map_err(|e| {
+ eprintln!("{}", e);
+ HttpResponse::InternalServerError().finish()
+ })?;
+ //dbg!(&products);
//Ok(HttpResponse::Ok().json(products))
+ todo!()
}
#[patch("/products/{id}")]
async fn update_product(
_pool: web::Data<DbPool>,
id: web::Path<u32>,
- updated_product: web::Json<UpdatedProduct>,
+ updated_product: web::Json<ProductPatch>,
) -> Result<HttpResponse, Error> {
dbg!(id, updated_product);
Ok(HttpResponse::Ok().finish())
@@ -40,15 +40,3 @@ async fn create_product(
dbg!(new_product);
Ok(HttpResponse::Ok().finish())
}
-
-#[derive(Debug, Deserialize)]
-pub struct NewProduct {
- pub name: String,
- pub description: String,
-}
-
-#[derive(Debug, Deserialize)]
-pub struct UpdatedProduct {
- pub name: Option<String>,
- pub description: Option<String>,
-}