summaryrefslogtreecommitdiff
path: root/src/error.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/error.rs')
-rw-r--r--src/error.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/error.rs b/src/error.rs
index 8b4bb6d..d8aaf18 100644
--- a/src/error.rs
+++ b/src/error.rs
@@ -7,12 +7,14 @@ pub enum AppError {
BadRequest,
Conflict,
Database(sqlx::Error),
+ NotFound,
}
impl From<sqlx::Error> for AppError {
fn from(e: sqlx::Error) -> Self {
match e {
sqlx::Error::Database(e) if e.is_unique_violation() => AppError::Conflict,
+ sqlx::Error::RowNotFound => AppError::NotFound,
e => AppError::Database(e),
}
}
@@ -27,6 +29,7 @@ impl IntoResponse for AppError {
tracing::error!("database error: {e}");
StatusCode::INTERNAL_SERVER_ERROR
}
+ AppError::NotFound => StatusCode::NOT_FOUND,
}
.into_response()
}