summaryrefslogtreecommitdiff
path: root/dichroism/src/repo
diff options
context:
space:
mode:
authorAdam T. Carpenter <atc@53hor.net>2022-10-26 21:02:31 -0400
committerAdam T. Carpenter <atc@53hor.net>2022-10-26 21:02:31 -0400
commit9f3098e80c6b6c87e9bfbfe36239a39e5cafb29f (patch)
treedb9ca419266117facecdff6d30460669f3148efb /dichroism/src/repo
parentf243a3b7341012227d6e8342a65f9c5d7784256f (diff)
downloadtheglassyladies-9f3098e80c6b6c87e9bfbfe36239a39e5cafb29f.tar.xz
theglassyladies-9f3098e80c6b6c87e9bfbfe36239a39e5cafb29f.zip
init: add some stories and personas and begin layout out domain
Diffstat (limited to 'dichroism/src/repo')
-rw-r--r--dichroism/src/repo/entities/mod.rs9
-rw-r--r--dichroism/src/repo/entities/photo_set.rs22
-rw-r--r--dichroism/src/repo/entities/photo_set_form.rs24
-rw-r--r--dichroism/src/repo/entities/product.rs39
-rw-r--r--dichroism/src/repo/entities/product_form.rs30
-rw-r--r--dichroism/src/repo/mod.rs7
-rw-r--r--dichroism/src/repo/photo_set_repo.rs44
-rw-r--r--dichroism/src/repo/product_repo.rs82
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
-}