diff options
author | Adam T. Carpenter <atc@53hor.net> | 2020-10-23 08:10:13 -0400 |
---|---|---|
committer | Adam T. Carpenter <atc@53hor.net> | 2020-10-23 08:10:13 -0400 |
commit | 00c71f6baff136a88805ca2e3f9ef72453ac9f35 (patch) | |
tree | 49db87097f949edce1f6639ba4118cff852e3937 /dichroism/src/repo/mod.rs | |
parent | 5cb0869b94fc8b9aff564055af9a60046de7b028 (diff) | |
download | theglassyladies-00c71f6baff136a88805ca2e3f9ef72453ac9f35.tar.xz theglassyladies-00c71f6baff136a88805ca2e3f9ef72453ac9f35.zip |
moved entities under repo; photos now hold onto just the filename
Diffstat (limited to 'dichroism/src/repo/mod.rs')
-rw-r--r-- | dichroism/src/repo/mod.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/dichroism/src/repo/mod.rs b/dichroism/src/repo/mod.rs new file mode 100644 index 0000000..0df8aad --- /dev/null +++ b/dichroism/src/repo/mod.rs @@ -0,0 +1,28 @@ +use crate::models; +use crate::schema::*; +use diesel::prelude::*; +use diesel::result::Error; + +mod entities; + +type DBConn = SqliteConnection; + +pub fn read_products(conn: &DBConn) -> Result<Vec<models::Product>, Error> { + 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>>()) +} |