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/entities | |
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/entities')
-rw-r--r-- | dichroism/src/entities/mod.rs | 41 | ||||
-rw-r--r-- | dichroism/src/entities/photo.rs | 5 | ||||
-rw-r--r-- | dichroism/src/entities/photo_set.rs | 8 | ||||
-rw-r--r-- | dichroism/src/entities/product.rs | 11 |
4 files changed, 35 insertions, 30 deletions
diff --git a/dichroism/src/entities/mod.rs b/dichroism/src/entities/mod.rs index 0b17cf7..a127ef1 100644 --- a/dichroism/src/entities/mod.rs +++ b/dichroism/src/entities/mod.rs @@ -1,7 +1,36 @@ -mod photo; -mod photo_set; -mod product; +use crate::models; +use crate::schema::products; -pub use photo::Photo; -pub use photo_set::PhotoSet; -pub use product::Product; +#[derive(Debug, Clone, Identifiable, Queryable, Serialize)] +pub struct Product { + pub id: i32, + pub name: String, + pub description: String, + pub quantity: i32, + pub cents: i32, + pub featured: i32, + pub original: String, + pub fullsize: String, + pub base: String, + pub thumbnail: String, +} + +impl Into<models::Product> for Product { + fn into(self) -> models::Product { + models::Product { + id: self.id as u32, + name: self.name, + description: self.description, + quantity: self.quantity as u32, + cents: self.cents as u32, + featured: self.featured != 0, // TODO: is this safe? + category: String::new(), // TODO: real category + photo_set: models::PhotoSet::from_photos( + models::Photo::from_path(self.original), + models::Photo::from_path(self.fullsize), + models::Photo::from_path(self.base), + models::Photo::from_path(self.thumbnail), + ), + } + } +} diff --git a/dichroism/src/entities/photo.rs b/dichroism/src/entities/photo.rs deleted file mode 100644 index 34e9c28..0000000 --- a/dichroism/src/entities/photo.rs +++ /dev/null @@ -1,5 +0,0 @@ -#[derive(Debug, Clone, Serialize)] -pub struct Photo { - pub id: i32, - pub path: String, -} diff --git a/dichroism/src/entities/photo_set.rs b/dichroism/src/entities/photo_set.rs deleted file mode 100644 index b9f7710..0000000 --- a/dichroism/src/entities/photo_set.rs +++ /dev/null @@ -1,8 +0,0 @@ -#[derive(Debug, Clone, Serialize)] -pub struct PhotoSet { - pub id: i32, - pub base: i32, - pub fullsize: i32, - pub thumbnail: i32, - pub original: i32, -} diff --git a/dichroism/src/entities/product.rs b/dichroism/src/entities/product.rs deleted file mode 100644 index 4f47c1d..0000000 --- a/dichroism/src/entities/product.rs +++ /dev/null @@ -1,11 +0,0 @@ -#[derive(Debug, Clone, Queryable, Serialize)] -pub struct Product { - pub id: i32, - pub photo_set: i32, - pub cents: i32, - pub quantity: i32, - pub name: String, - pub description: String, - pub featured: i32, -} - |