Migrate to sqlx

This commit is contained in:
Tobias Reisinger 2023-11-21 00:44:45 +01:00
parent bd44dc3183
commit f3d08aab80
19 changed files with 1488 additions and 588 deletions
src/db

View file

@ -2,15 +2,16 @@ use actix_web::http::StatusCode;
use actix_web::HttpResponse;
use serde::ser::SerializeStruct;
use serde::{Serialize, Serializer};
use sqlx::Error;
#[derive(Debug)]
pub enum DatabaseError {
DeleteError,
InsertError(diesel::result::Error),
InsertError,
InsertGetError,
NotFound,
Protected,
UpdateError(diesel::result::Error),
UpdateError,
Unknown,
}
@ -40,14 +41,14 @@ impl Serialize for DatabaseError {
impl From<&DatabaseError> for String {
fn from(err: &DatabaseError) -> Self {
match err {
DatabaseError::InsertError(_) => String::from("error on inserting into database"),
DatabaseError::InsertError => String::from("error on inserting into database"),
DatabaseError::InsertGetError => {
String::from("error on retrieving new entry from database (your entry was saved)")
}
DatabaseError::NotFound => String::from("model was not found in database"),
DatabaseError::DeleteError => String::from("error on deleting from database"),
DatabaseError::Protected => String::from("model is protected"),
DatabaseError::UpdateError(_) => String::from("error on updating the model"),
DatabaseError::UpdateError => String::from("error on updating the model"),
DatabaseError::Unknown => String::from("unknown error"),
}
}
@ -58,3 +59,12 @@ impl From<DatabaseError> for HttpResponse {
HttpResponse::build(err.get_code()).json(err)
}
}
impl From<Error> for DatabaseError {
fn from(value: Error) -> Self {
match value {
Error::RowNotFound => DatabaseError::NotFound,
_ => DatabaseError::Unknown,
}
}
}