aboutsummaryrefslogtreecommitdiff
path: root/src/error
diff options
context:
space:
mode:
Diffstat (limited to 'src/error')
-rw-r--r--src/error/client.rs3
-rw-r--r--src/error/mod.rs8
2 files changed, 10 insertions, 1 deletions
diff --git a/src/error/client.rs b/src/error/client.rs
index 07d5f97..e93bbb7 100644
--- a/src/error/client.rs
+++ b/src/error/client.rs
@@ -1,5 +1,6 @@
1pub enum ClientError { 1pub enum ClientError {
2 BadJsonBody(String), 2 BadJsonBody(String),
3 BadQueryString(String),
3 BadAuthTokenHeader(String), 4 BadAuthTokenHeader(String),
4 UsernameIsTaken { username: String }, 5 UsernameIsTaken { username: String },
5 InvalidPassword, 6 InvalidPassword,
@@ -13,6 +14,7 @@ impl ClientError {
13 pub fn kind(&self) -> String { 14 pub fn kind(&self) -> String {
14 match self { 15 match self {
15 Self::BadJsonBody(..) => "BadJsonBody", 16 Self::BadJsonBody(..) => "BadJsonBody",
17 Self::BadQueryString(..) => "BadQueryString",
16 Self::BadAuthTokenHeader(..) => "BadAuthTokenHeader", 18 Self::BadAuthTokenHeader(..) => "BadAuthTokenHeader",
17 Self::UsernameIsTaken { .. } => "UsernameIsTaken", 19 Self::UsernameIsTaken { .. } => "UsernameIsTaken",
18 Self::InvalidPassword => "InvalidPassword", 20 Self::InvalidPassword => "InvalidPassword",
@@ -27,6 +29,7 @@ impl ClientError {
27 pub fn into_message(self) -> String { 29 pub fn into_message(self) -> String {
28 match self { 30 match self {
29 Self::BadJsonBody(msg) => msg, 31 Self::BadJsonBody(msg) => msg,
32 Self::BadQueryString(msg) => msg,
30 Self::BadAuthTokenHeader(msg) => msg, 33 Self::BadAuthTokenHeader(msg) => msg,
31 Self::UsernameIsTaken { username } => { 34 Self::UsernameIsTaken { username } => {
32 format!("username `{}` is taken", username) 35 format!("username `{}` is taken", username)
diff --git a/src/error/mod.rs b/src/error/mod.rs
index 4b8e1c4..07db26f 100644
--- a/src/error/mod.rs
+++ b/src/error/mod.rs
@@ -5,7 +5,7 @@ pub use client::ClientError;
5pub use server::ServerError; 5pub use server::ServerError;
6 6
7use argon2::password_hash::Error as PasswordHashError; 7use argon2::password_hash::Error as PasswordHashError;
8use axum::extract::rejection::JsonRejection; 8use axum::extract::rejection::{JsonRejection, QueryRejection};
9use axum_extra::typed_header::TypedHeaderRejection; 9use axum_extra::typed_header::TypedHeaderRejection;
10use sea_orm::DbErr; 10use sea_orm::DbErr;
11 11
@@ -34,6 +34,12 @@ impl From<JsonRejection> for ApiError {
34 } 34 }
35} 35}
36 36
37impl From<QueryRejection> for ApiError {
38 fn from(value: QueryRejection) -> Self {
39 ClientError::BadJsonBody(value.body_text()).into()
40 }
41}
42
37impl From<TypedHeaderRejection> for ApiError { 43impl From<TypedHeaderRejection> for ApiError {
38 fn from(value: TypedHeaderRejection) -> Self { 44 fn from(value: TypedHeaderRejection) -> Self {
39 ClientError::BadAuthTokenHeader(value.to_string()).into() 45 ClientError::BadAuthTokenHeader(value.to_string()).into()