summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.toml26
-rw-r--r--schist_backend/Cargo.toml16
-rw-r--r--schist_backend/Rocket.toml2
-rw-r--r--schist_backend/diesel.toml9
-rw-r--r--schist_backend/src/databases.rs11
-rw-r--r--schist_backend/src/main.rs48
-rw-r--r--schist_backend/src/routes/account.rs48
-rw-r--r--schist_backend/src/routes/category.rs16
-rw-r--r--schist_backend/src/routes/mod.rs2
9 files changed, 11 insertions, 167 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 0afc5c6..29fd49a 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,23 +1,21 @@
[workspace]
members = [
- "schist_backend",
- "schist_core/schist_fakes",
- "schist_core/schist_models",
- "schist_core/schist_queries",
- "schist_core/schist_schema",
- "schist_core/schist_traits",
- "schist_desktop_gui",
- "transformers/actualbudget_transformer/actualbudget_fakes",
- "transformers/actualbudget_transformer/actualbudget_models",
- "transformers/actualbudget_transformer/actualbudget_queries",
- "transformers/actualbudget_transformer/actualbudget_schema",
- "transformers/actualbudget_transformer/actualbudget_to_schist_transformer",
+ "schist_core/schist_fakes",
+ "schist_core/schist_models",
+ "schist_core/schist_queries",
+ "schist_core/schist_schema",
+ "schist_core/schist_traits",
+ "schist_desktop_gui",
+ "transformers/actualbudget_transformer/actualbudget_fakes",
+ "transformers/actualbudget_transformer/actualbudget_models",
+ "transformers/actualbudget_transformer/actualbudget_queries",
+ "transformers/actualbudget_transformer/actualbudget_schema",
+ "transformers/actualbudget_transformer/actualbudget_to_schist_transformer",
]
resolver = "2"
[workspace.dependencies]
anyhow = { version = "1.0.0", features = ["backtrace"] }
-cfg-if = "1.0.0"
chrono = { version = "0.4.38" }
derive_builder = { version = "0.20.2" }
diesel = { version = "2.2.0" }
@@ -26,8 +24,6 @@ dotenvy = "0.15.7"
iced = "0.13.1"
itertools = "0.13.0"
libsqlite3-sys = { version = "0.30.1", features = ["bundled"] }
-rocket = { version = "0.5.1" }
-rocket_sync_db_pools = { version = "0.1.0" }
schist_fakes = { path = "schist_core/schist_fakes" }
schist_models = { path = "schist_core/schist_models" }
schist_queries = { path = "schist_core/schist_queries" }
diff --git a/schist_backend/Cargo.toml b/schist_backend/Cargo.toml
deleted file mode 100644
index 6bbd260..0000000
--- a/schist_backend/Cargo.toml
+++ /dev/null
@@ -1,16 +0,0 @@
-[package]
-name = "schist_backend"
-version = "0.1.0"
-edition = "2021"
-
-[dependencies]
-cfg-if = { workspace = true }
-chrono = { workspace = true, features = ["serde"] }
-diesel = { workspace = true, features = ["sqlite"] }
-diesel_migrations = { workspace = true }
-libsqlite3-sys = { workspace = true, features = ["bundled"] }
-rocket = { workspace = true, features = ["json"] }
-rocket_sync_db_pools = { workspace = true, features = ["diesel_sqlite_pool"] }
-schist_models = { workspace = true }
-schist_queries = { workspace = true }
-schist_schema = { workspace = true }
diff --git a/schist_backend/Rocket.toml b/schist_backend/Rocket.toml
deleted file mode 100644
index 088d632..0000000
--- a/schist_backend/Rocket.toml
+++ /dev/null
@@ -1,2 +0,0 @@
-[global.databases]
-user_data = { url = "/home/joeac/src/budgeting-app/backend/core/user_data.sqlite" }
diff --git a/schist_backend/diesel.toml b/schist_backend/diesel.toml
deleted file mode 100644
index a0d61bf..0000000
--- a/schist_backend/diesel.toml
+++ /dev/null
@@ -1,9 +0,0 @@
-# For documentation on how to configure this file,
-# see https://diesel.rs/guides/configuring-diesel-cli
-
-[print_schema]
-file = "src/schema.rs"
-custom_type_derives = ["diesel::query_builder::QueryId", "Clone"]
-
-[migrations_directory]
-dir = "migrations"
diff --git a/schist_backend/src/databases.rs b/schist_backend/src/databases.rs
deleted file mode 100644
index 7202e78..0000000
--- a/schist_backend/src/databases.rs
+++ /dev/null
@@ -1,11 +0,0 @@
-use rocket_sync_db_pools::{database, diesel};
-
-cfg_if::cfg_if! {
- if #[cfg(test)] {
- #[database("user_data.test")]
- pub struct UserDataDb(diesel::SqliteConnection);
- } else {
- #[database("user_data")]
- pub struct UserDataDb(diesel::SqliteConnection);
- }
-}
diff --git a/schist_backend/src/main.rs b/schist_backend/src/main.rs
deleted file mode 100644
index 83da9b6..0000000
--- a/schist_backend/src/main.rs
+++ /dev/null
@@ -1,48 +0,0 @@
-use diesel::SqliteConnection;
-use diesel_migrations::MigrationHarness;
-use rocket::fairing::AdHoc;
-use rocket::http::ContentType;
-use rocket::{launch, routes, Build, Rocket};
-use schist_schema::migrations::MIGRATIONS;
-
-use crate::databases::UserDataDb;
-
-pub mod databases;
-pub mod routes;
-
-fn run_database_migrations(connection: &mut SqliteConnection) {
- connection
- .run_pending_migrations(MIGRATIONS)
- .expect("Error running database migrations");
-}
-
-#[launch]
-async fn rocket() -> Rocket<Build> {
- rocket::build()
- .attach(UserDataDb::fairing())
- .attach(AdHoc::on_liftoff("Database Migration", |rocket| {
- Box::pin(async move {
- let user_data_db = UserDataDb::get_one(rocket).await.expect(
- "Failed to get connection to user data database in order to run migrations",
- );
- user_data_db.run(run_database_migrations).await;
- })
- }))
- .attach(AdHoc::on_response("Add CORS headers", |_req, res| {
- Box::pin(async move {
- res.set_header(ContentType::JSON);
- res.set_header(rocket::http::Header::new(
- "Access-Control-Allow-Origin",
- "http://localhost:5173",
- ));
- })
- }))
- .mount(
- "/",
- routes![
- routes::account::get_all_accounts,
- routes::account::create_account,
- routes::category::get_all_categories,
- ],
- )
-}
diff --git a/schist_backend/src/routes/account.rs b/schist_backend/src/routes/account.rs
deleted file mode 100644
index 83d4d1b..0000000
--- a/schist_backend/src/routes/account.rs
+++ /dev/null
@@ -1,48 +0,0 @@
-use schist_models::account::Account;
-use schist_queries::accounts::{get_all_accounts as get_all_accounts_query, insert_accounts};
-use rocket::http::Status;
-use rocket::serde::json::Json;
-use rocket::{get, post, Responder};
-
-use crate::databases::UserDataDb;
-
-#[get("/account")]
-pub async fn get_all_accounts(user_data_db: UserDataDb) -> Result<Json<Vec<Account>>, (Status, String)> {
- user_data_db
- .run(get_all_accounts_query)
- .await
- .map(Json)
- .map_err(|err| (Status::InternalServerError, err.to_string()))
-}
-
-#[derive(Responder)]
-pub enum CreateAccountResponder {
- #[response(status = 500, content_type = "text")]
- InternalServerError(String),
-
- #[response(status = 202, content_type = "json")]
- Created(Json<Account>),
-
- #[response(status = 400, content_type = "text")]
- BadRequest(String),
-}
-
-#[post("/account", data = "<account>", format = "json")]
-pub async fn create_account(
- account: Json<Account>,
- user_data_db: UserDataDb,
-) -> CreateAccountResponder {
- let account = account.into_inner();
- let accounts_vec = vec![account.clone()];
-
- let num_rows_inserted = user_data_db
- .run(move |connection| insert_accounts(&accounts_vec, connection))
- .await;
-
- match num_rows_inserted {
- Ok(_) => CreateAccountResponder::Created(Json(account)),
- Err(err) => CreateAccountResponder::InternalServerError(format!(
- "Error creating account: {err}"
- )),
- }
-}
diff --git a/schist_backend/src/routes/category.rs b/schist_backend/src/routes/category.rs
deleted file mode 100644
index b2412ac..0000000
--- a/schist_backend/src/routes/category.rs
+++ /dev/null
@@ -1,16 +0,0 @@
-use rocket::get;
-use rocket::http::Status;
-use rocket::serde::json::Json;
-use schist_models::category::Category;
-use schist_queries::categories::get_all_categories as get_all_categories_query;
-
-use crate::databases::UserDataDb;
-
-#[get("/category")]
-pub async fn get_all_categories(user_data_db: UserDataDb) -> Result<Json<Vec<Category>>, Status> {
- user_data_db
- .run(get_all_categories_query)
- .await
- .map(Json)
- .map_err(|_| Status { code: 500 })
-}
diff --git a/schist_backend/src/routes/mod.rs b/schist_backend/src/routes/mod.rs
deleted file mode 100644
index e22565c..0000000
--- a/schist_backend/src/routes/mod.rs
+++ /dev/null
@@ -1,2 +0,0 @@
-pub mod account;
-pub mod category;