summaryrefslogtreecommitdiff
path: root/dichroism/src/product_repo.rs
diff options
context:
space:
mode:
authorAdam T. Carpenter <atc@53hor.net>2020-10-22 22:09:46 -0400
committerAdam T. Carpenter <atc@53hor.net>2020-10-22 22:09:46 -0400
commit5cb0869b94fc8b9aff564055af9a60046de7b028 (patch)
tree022cd909467d10747e9aa36d9455d47ea90b6c97 /dichroism/src/product_repo.rs
parent99dabd3f2f81ffcf0b6f2b59e13ebb4502b2ccac (diff)
downloadtheglassyladies-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.rs21
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>>())
}