diff options
Diffstat (limited to 'dichroism/src/repo')
-rw-r--r-- | dichroism/src/repo/entities/mod.rs | 9 | ||||
-rw-r--r-- | dichroism/src/repo/entities/photo_set.rs | 22 | ||||
-rw-r--r-- | dichroism/src/repo/entities/photo_set_form.rs | 24 | ||||
-rw-r--r-- | dichroism/src/repo/entities/product.rs | 39 | ||||
-rw-r--r-- | dichroism/src/repo/entities/product_form.rs | 30 | ||||
-rw-r--r-- | dichroism/src/repo/mod.rs | 7 | ||||
-rw-r--r-- | dichroism/src/repo/photo_set_repo.rs | 44 | ||||
-rw-r--r-- | dichroism/src/repo/product_repo.rs | 82 |
8 files changed, 0 insertions, 257 deletions
diff --git a/dichroism/src/repo/entities/mod.rs b/dichroism/src/repo/entities/mod.rs deleted file mode 100644 index 288f1e3..0000000 --- a/dichroism/src/repo/entities/mod.rs +++ /dev/null @@ -1,9 +0,0 @@ -mod photo_set; -mod photo_set_form; -mod product; -mod product_form; - -pub use photo_set::*; -pub use photo_set_form::*; -pub use product::*; -pub use product_form::*; diff --git a/dichroism/src/repo/entities/photo_set.rs b/dichroism/src/repo/entities/photo_set.rs deleted file mode 100644 index 6e48e12..0000000 --- a/dichroism/src/repo/entities/photo_set.rs +++ /dev/null @@ -1,22 +0,0 @@ -use crate::models; - -#[derive(Debug, Clone, Queryable)] -pub struct PhotoSet { - pub id: i32, - pub original: String, - pub fullsize: String, - pub base: String, - pub thumbnail: String, -} - -impl Into<models::PhotoSet> for PhotoSet { - fn into(self) -> models::PhotoSet { - models::PhotoSet { - id: Some(self.id), - original: models::Photo::new(self.original), - fullsize: models::Photo::new(self.fullsize), - base: models::Photo::new(self.base), - thumbnail: models::Photo::new(self.thumbnail), - } - } -} diff --git a/dichroism/src/repo/entities/photo_set_form.rs b/dichroism/src/repo/entities/photo_set_form.rs deleted file mode 100644 index 611c8f0..0000000 --- a/dichroism/src/repo/entities/photo_set_form.rs +++ /dev/null @@ -1,24 +0,0 @@ -use crate::models::PhotoSet; -use crate::schema::photo_sets; - -#[derive(Insertable, AsChangeset)] -#[table_name = "photo_sets"] -pub struct PhotoSetForm { - pub id: i32, - pub original: String, - pub fullsize: String, - pub base: String, - pub thumbnail: String, -} - -impl From<PhotoSet> for PhotoSetForm { - fn from(p: PhotoSet) -> Self { - Self { - id: p.id.unwrap_or(-1), - original: p.original.id, - fullsize: p.fullsize.id, - base: p.base.id, - thumbnail: p.thumbnail.id, - } - } -} diff --git a/dichroism/src/repo/entities/product.rs b/dichroism/src/repo/entities/product.rs deleted file mode 100644 index c89495a..0000000 --- a/dichroism/src/repo/entities/product.rs +++ /dev/null @@ -1,39 +0,0 @@ -use crate::models; -use crate::schema::products; - -#[derive(Debug, Clone, Identifiable, Queryable)] -pub struct Product { - pub id: i32, - pub name: String, - pub description: String, - pub quantity: i32, - pub cents: i32, - pub featured: i32, - pub category: String, - pub photo_set_id: 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: Some(self.id), - name: self.name, - description: self.description, - quantity: self.quantity, - cents: self.cents, - featured: self.featured != 0, - category: self.category, - photo_set: models::PhotoSet { - id: Some(self.photo_set_id), - original: models::Photo::new(self.original), - fullsize: models::Photo::new(self.fullsize), - base: models::Photo::new(self.base), - thumbnail: models::Photo::new(self.thumbnail), - }, - } - } -} diff --git a/dichroism/src/repo/entities/product_form.rs b/dichroism/src/repo/entities/product_form.rs deleted file mode 100644 index b3447eb..0000000 --- a/dichroism/src/repo/entities/product_form.rs +++ /dev/null @@ -1,30 +0,0 @@ -use crate::models::*; -use crate::schema::products; - -#[derive(Debug, Insertable, AsChangeset)] -#[table_name = "products"] -pub struct ProductForm { - pub id: i32, - pub name: String, - pub description: String, - pub quantity: i32, - pub cents: i32, - pub featured: i32, - pub photo_set: i32, - pub category: String, -} - -impl From<Product> for ProductForm { - fn from(p: Product) -> Self { - Self { - id: p.id.unwrap_or(-1), - name: p.name, - description: p.description, - quantity: p.quantity, - cents: p.cents, - featured: p.featured as i32, - photo_set: p.photo_set.id.unwrap_or(-1), - category: p.category, - } - } -} diff --git a/dichroism/src/repo/mod.rs b/dichroism/src/repo/mod.rs deleted file mode 100644 index 75a063c..0000000 --- a/dichroism/src/repo/mod.rs +++ /dev/null @@ -1,7 +0,0 @@ -use diesel::SqliteConnection; - -pub mod entities; -pub mod photo_set_repo; -pub mod product_repo; - -type DBConn = SqliteConnection; diff --git a/dichroism/src/repo/photo_set_repo.rs b/dichroism/src/repo/photo_set_repo.rs deleted file mode 100644 index 56ca962..0000000 --- a/dichroism/src/repo/photo_set_repo.rs +++ /dev/null @@ -1,44 +0,0 @@ -use super::entities::*; -use super::DBConn; -use crate::models; -use diesel::{insert_into, prelude::*, result::Error, update}; - -pub fn store(conn: &DBConn, mut photo_set: models::PhotoSet) -> Result<models::PhotoSet, Error> { - use crate::schema::photo_sets::dsl::*; - if let Some(photo_set_id) = photo_set.id { - // update - let form = PhotoSetForm::from(photo_set.clone()); - update(photo_sets.filter(id.eq(photo_set_id))) - .set(&form) - .execute(conn)?; - } else { - // insert - photo_set.id = Some(find_next_id(conn)); - let form = PhotoSetForm::from(photo_set.clone()); - insert_into(photo_sets).values(&form).execute(conn)?; - } - Ok(photo_set) -} - -pub fn find(conn: &DBConn, dbid: i32) -> Result<Option<models::PhotoSet>, Error> { - use crate::schema::photo_sets::dsl::*; - let query = photo_sets - .filter(id.eq(dbid)) - .select((id, original, fullsize, base, thumbnail)); - let photo_set = query.first::<PhotoSet>(conn).map(|p| p.into()); - match photo_set { - Ok(p) => Ok(Some(p)), - Err(Error::NotFound) => Ok(None), - Err(e) => Err(e), - } -} - -fn find_next_id(conn: &DBConn) -> i32 { - use crate::schema::photo_sets::dsl::*; - let last_id = photo_sets - .select(id) - .order(id.desc()) - .first::<i32>(conn) - .unwrap_or(0); - last_id + 1 -} diff --git a/dichroism/src/repo/product_repo.rs b/dichroism/src/repo/product_repo.rs deleted file mode 100644 index 487f96e..0000000 --- a/dichroism/src/repo/product_repo.rs +++ /dev/null @@ -1,82 +0,0 @@ -use super::entities::*; -use super::DBConn; -use crate::models; -use diesel::{insert_into, prelude::*, result::Error, update}; - -pub fn store(conn: &DBConn, mut product: models::Product) -> Result<models::Product, Error> { - use crate::schema::products::dsl::*; - if let Some(product_id) = product.id { - // update - let form = ProductForm::from(product.clone()); - update(products.filter(id.eq(product_id))) - .set(&form) - .execute(conn)?; - } else { - // insert - product.id = Some(find_next_id(conn)); - let form = ProductForm::from(product.clone()); - insert_into(products).values(&form).execute(conn)?; - } - - Ok(product) -} - -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, - products::category, - photo_sets::id, - photo_sets::original, - photo_sets::fullsize, - photo_sets::base, - photo_sets::thumbnail, - )); - Ok(query - .load::<Product>(conn)? - .into_iter() - .map(|p| p.into()) - .collect::<Vec<models::Product>>()) -} - -pub fn find(conn: &DBConn, dbid: i32) -> Result<Option<models::Product>, Error> { - use crate::schema::*; - let query = products::table - .inner_join(photo_sets::table) - .filter(products::id.eq(dbid)) - .select(( - products::id, - products::name, - products::description, - products::quantity, - products::cents, - products::featured, - products::category, - photo_sets::id, - photo_sets::original, - photo_sets::fullsize, - photo_sets::base, - photo_sets::thumbnail, - )); - let product = query.first::<Product>(conn).map(|p| p.into()); - match product { - Ok(p) => Ok(Some(p)), - Err(Error::NotFound) => Ok(None), - Err(e) => Err(e), - } -} - -fn find_next_id(conn: &DBConn) -> i32 { - use crate::schema::products::dsl::*; - let last_id = products - .select(id) - .order(id.desc()) - .first::<i32>(conn) - .unwrap_or(0); - last_id + 1 -} |