summaryrefslogtreecommitdiff
path: root/dichroism/src/repo/product_repo.rs
diff options
context:
space:
mode:
Diffstat (limited to 'dichroism/src/repo/product_repo.rs')
-rw-r--r--dichroism/src/repo/product_repo.rs32
1 files changed, 19 insertions, 13 deletions
diff --git a/dichroism/src/repo/product_repo.rs b/dichroism/src/repo/product_repo.rs
index 7b3aaac..d7dff65 100644
--- a/dichroism/src/repo/product_repo.rs
+++ b/dichroism/src/repo/product_repo.rs
@@ -21,19 +21,23 @@ pub fn store(conn: &DBConn, mut product: models::Product) -> Result<models::Prod
pub fn find_all(conn: &DBConn) -> Result<Vec<models::Product>, Error> {
use crate::schema::*;
- let query = products::table.inner_join(photo_sets::table).select((
- products::id,
- products::name,
- products::description,
- products::quantity,
- products::cents,
- products::featured,
- photo_sets::id,
- photo_sets::original,
- photo_sets::fullsize,
- photo_sets::base,
- photo_sets::thumbnail,
- ));
+ let query = products::table
+ .inner_join(photo_sets::table)
+ .inner_join(categories::table)
+ .select((
+ products::id,
+ products::name,
+ products::description,
+ products::quantity,
+ products::cents,
+ products::featured,
+ photo_sets::id,
+ photo_sets::original,
+ photo_sets::fullsize,
+ photo_sets::base,
+ photo_sets::thumbnail,
+ categories::path,
+ ));
Ok(query
.load::<Product>(conn)?
.into_iter()
@@ -45,6 +49,7 @@ pub fn find(conn: &DBConn, dbid: i32) -> Result<Option<models::Product>, Error>
use crate::schema::*;
let query = products::table
.inner_join(photo_sets::table)
+ .inner_join(categories::table)
.filter(products::id.eq(dbid))
.select((
products::id,
@@ -58,6 +63,7 @@ pub fn find(conn: &DBConn, dbid: i32) -> Result<Option<models::Product>, Error>
photo_sets::fullsize,
photo_sets::base,
photo_sets::thumbnail,
+ categories::path,
));
let product = query.first::<Product>(conn).map(|p| p.into());
match product {