@@ -33,6 +33,12 @@ pub enum AppError {
3333 #[ error( "{0}" ) ]
3434 OAuthError ( String ) ,
3535
36+ #[ error( "{0}" ) ]
37+ BadRequest ( String ) ,
38+
39+ #[ error( "{0}" ) ]
40+ UserAlreadyRegistered ( String ) ,
41+
3642 #[ error( "Missing Payload:{0}" ) ]
3743 MissingPayload ( String ) ,
3844
@@ -128,6 +134,8 @@ impl AppError {
128134 AppError :: InvalidEmail ( _) => ErrorCode :: InvalidEmail ,
129135 AppError :: InvalidPassword ( _) => ErrorCode :: InvalidPassword ,
130136 AppError :: OAuthError ( _) => ErrorCode :: OAuthError ,
137+ AppError :: BadRequest ( _) => ErrorCode :: InvalidRequest ,
138+ AppError :: UserAlreadyRegistered ( _) => ErrorCode :: RecordAlreadyExists ,
131139 AppError :: MissingPayload ( _) => ErrorCode :: MissingPayload ,
132140 AppError :: DBError ( _) => ErrorCode :: DBError ,
133141 AppError :: OpenError ( _) => ErrorCode :: OpenError ,
@@ -197,14 +205,16 @@ impl From<crate::gotrue::GoTrueError> for AppError {
197205 GoTrueError :: Connect ( msg) => AppError :: Connect ( msg) ,
198206 GoTrueError :: RequestTimeout ( msg) => AppError :: RequestTimeout ( msg) ,
199207 GoTrueError :: InvalidRequest ( msg) => AppError :: InvalidRequest ( msg) ,
200- GoTrueError :: ClientError ( err) => AppError :: OAuthError ( err. to_string ( ) ) ,
208+ GoTrueError :: ClientError ( err) => AppError :: BadRequest ( err. to_string ( ) ) ,
201209 GoTrueError :: Auth ( err) => AppError :: OAuthError ( err) ,
202210 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+ } ,
205215 ( 401 , _) => AppError :: OAuthError ( err. msg ) ,
206216 ( 422 , _) => AppError :: InvalidRequest ( err. msg ) ,
207- _ => AppError :: OAuthError ( err. to_string ( ) ) ,
217+ _ => AppError :: Internal ( err. into ( ) ) ,
208218 } ,
209219 GoTrueError :: Unhandled ( err) => AppError :: Internal ( err) ,
210220 GoTrueError :: NotLoggedIn ( msg) => AppError :: NotLoggedIn ( msg) ,
0 commit comments