summaryrefslogtreecommitdiff
path: root/backend/src/routes/account.rs
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2024-10-16 12:51:21 +0100
committerJoe Carstairs <me@joeac.net>2024-10-16 12:51:21 +0100
commit27b95c9186bd45edd4c982a7cc89cf69cf2c5d46 (patch)
treebf104ff9d64e601bfec5516eb51ef298f3095e9b /backend/src/routes/account.rs
parent76974785294089965efc3f55b2a08d4089029c52 (diff)
All backend stuff lives in backend folder
Diffstat (limited to 'backend/src/routes/account.rs')
-rw-r--r--backend/src/routes/account.rs57
1 files changed, 0 insertions, 57 deletions
diff --git a/backend/src/routes/account.rs b/backend/src/routes/account.rs
deleted file mode 100644
index 7bbdb4f..0000000
--- a/backend/src/routes/account.rs
+++ /dev/null
@@ -1,57 +0,0 @@
-use diesel::result::DatabaseErrorKind;
-use rocket::http::Status;
-use rocket::serde::json::Json;
-use rocket::{get, post, Responder};
-
-use crate::databases::UserDataDb;
-use crate::models::account::Account;
-use crate::queries::accounts::{get_all_accounts as get_all_accounts_query, insert_account};
-
-#[get("/account")]
-pub async fn get_all_accounts(user_data_db: UserDataDb) -> Result<Json<Vec<Account>>, Status> {
- user_data_db
- .run(get_all_accounts_query)
- .await
- .map(Json)
- .map_err(|_| Status { code: 500 })
-}
-
-#[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_account(&accounts_vec, connection))
- .await;
-
- match num_rows_inserted {
- Ok(_) => CreateAccountResponder::Created(Json(account)),
- Err(err) => match err {
- diesel::result::Error::DatabaseError(DatabaseErrorKind::UniqueViolation, info) => {
- let column = info.column_name().unwrap_or("account");
- CreateAccountResponder::BadRequest(format!(
- "Error creating account: {column} was not unique."
- ))
- }
- _ => CreateAccountResponder::InternalServerError(format!(
- "Error creating account: {err}"
- )),
- },
- }
-}