diff options
author | Adam T. Carpenter <atc@53hor.net> | 2020-10-22 22:09:46 -0400 |
---|---|---|
committer | Adam T. Carpenter <atc@53hor.net> | 2020-10-22 22:09:46 -0400 |
commit | 5cb0869b94fc8b9aff564055af9a60046de7b028 (patch) | |
tree | 022cd909467d10747e9aa36d9455d47ea90b6c97 /dichroism/src/product_repo.rs | |
parent | 99dabd3f2f81ffcf0b6f2b59e13ebb4502b2ccac (diff) | |
download | theglassyladies-5cb0869b94fc8b9aff564055af9a60046de7b028.tar.xz theglassyladies-5cb0869b94fc8b9aff564055af9a60046de7b028.zip |
Skipped separate photo table; working handler for get all products
(lacking cats)
Diffstat (limited to 'dichroism/src/product_repo.rs')
-rw-r--r-- | dichroism/src/product_repo.rs | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/dichroism/src/product_repo.rs b/dichroism/src/product_repo.rs index 93176b2..6f40b20 100644 --- a/dichroism/src/product_repo.rs +++ b/dichroism/src/product_repo.rs @@ -1,12 +1,27 @@ use crate::entities; use crate::models; +use crate::schema::*; use diesel::prelude::*; use diesel::result::Error; type DBConn = SqliteConnection; pub fn read_products(conn: &DBConn) -> Result<Vec<models::Product>, Error> { - use crate::schema::products::dsl::*; - let results = products.load::<entities::Product>(conn)?; - todo!() + let query = products::table.inner_join(photo_sets::table).select(( + products::id, + products::name, + products::description, + products::quantity, + products::cents, + products::featured, + photo_sets::original, + photo_sets::fullsize, + photo_sets::base, + photo_sets::thumbnail, + )); + Ok(query + .load::<entities::Product>(conn)? + .into_iter() + .map(|p| p.into()) + .collect::<Vec<models::Product>>()) } |