@@ -33,6 +33,12 @@ pub enum AppError {
33
33
#[ error( "{0}" ) ]
34
34
OAuthError ( String ) ,
35
35
36
+ #[ error( "{0}" ) ]
37
+ BadRequest ( String ) ,
38
+
39
+ #[ error( "{0}" ) ]
40
+ UserAlreadyRegistered ( String ) ,
41
+
36
42
#[ error( "Missing Payload:{0}" ) ]
37
43
MissingPayload ( String ) ,
38
44
@@ -128,6 +134,8 @@ impl AppError {
128
134
AppError :: InvalidEmail ( _) => ErrorCode :: InvalidEmail ,
129
135
AppError :: InvalidPassword ( _) => ErrorCode :: InvalidPassword ,
130
136
AppError :: OAuthError ( _) => ErrorCode :: OAuthError ,
137
+ AppError :: BadRequest ( _) => ErrorCode :: InvalidRequest ,
138
+ AppError :: UserAlreadyRegistered ( _) => ErrorCode :: RecordAlreadyExists ,
131
139
AppError :: MissingPayload ( _) => ErrorCode :: MissingPayload ,
132
140
AppError :: DBError ( _) => ErrorCode :: DBError ,
133
141
AppError :: OpenError ( _) => ErrorCode :: OpenError ,
@@ -197,14 +205,16 @@ impl From<crate::gotrue::GoTrueError> for AppError {
197
205
GoTrueError :: Connect ( msg) => AppError :: Connect ( msg) ,
198
206
GoTrueError :: RequestTimeout ( msg) => AppError :: RequestTimeout ( msg) ,
199
207
GoTrueError :: InvalidRequest ( msg) => AppError :: InvalidRequest ( msg) ,
200
- GoTrueError :: ClientError ( err) => AppError :: OAuthError ( err. to_string ( ) ) ,
208
+ GoTrueError :: ClientError ( err) => AppError :: BadRequest ( err. to_string ( ) ) ,
201
209
GoTrueError :: Auth ( err) => AppError :: OAuthError ( err) ,
202
210
GoTrueError :: Internal ( err) => match ( err. code , err. msg . as_str ( ) ) {
203
- ( 400 , m) if m. starts_with ( "oauth error" ) => AppError :: OAuthError ( err. msg ) ,
204
- ( 400 , m) if m. starts_with ( "User already registered" ) => AppError :: OAuthError ( err. msg ) ,
211
+ ( 400 , m) if m. starts_with ( "oauth error" ) => AppError :: BadRequest ( err. msg ) ,
212
+ ( 400 , m) if m. starts_with ( "User already registered" ) => {
213
+ AppError :: UserAlreadyRegistered ( err. msg )
214
+ } ,
205
215
( 401 , _) => AppError :: OAuthError ( err. msg ) ,
206
216
( 422 , _) => AppError :: InvalidRequest ( err. msg ) ,
207
- _ => AppError :: OAuthError ( err. to_string ( ) ) ,
217
+ _ => AppError :: Internal ( err. into ( ) ) ,
208
218
} ,
209
219
GoTrueError :: Unhandled ( err) => AppError :: Internal ( err) ,
210
220
GoTrueError :: NotLoggedIn ( msg) => AppError :: NotLoggedIn ( msg) ,
0 commit comments