summaryrefslogtreecommitdiff
path: root/dichroism/src/repo/mod.rs
diff options
context:
space:
mode:
authorAdam T. Carpenter <atc@53hor.net>2020-10-23 08:10:13 -0400
committerAdam T. Carpenter <atc@53hor.net>2020-10-23 08:10:13 -0400
commit00c71f6baff136a88805ca2e3f9ef72453ac9f35 (patch)
tree49db87097f949edce1f6639ba4118cff852e3937 /dichroism/src/repo/mod.rs
parent5cb0869b94fc8b9aff564055af9a60046de7b028 (diff)
downloadtheglassyladies-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.rs28
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>>())
+}