refactor: login-logout action
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
use aes::cipher::{block_padding::UnpadError, inout::PadError};
|
||||
use snafu::Snafu;
|
||||
|
||||
use crate::title::model::LoginError;
|
||||
|
||||
#[derive(Debug, Snafu)]
|
||||
pub enum ApiError {
|
||||
JoinError,
|
||||
@@ -33,6 +35,12 @@ pub enum ApiError {
|
||||
Request {
|
||||
source: nyquest::Error,
|
||||
},
|
||||
|
||||
#[snafu(display("login error: {source}"))]
|
||||
#[snafu(context(false))]
|
||||
Login {
|
||||
source: LoginError,
|
||||
},
|
||||
}
|
||||
|
||||
impl From<UnpadError> for ApiError {
|
||||
|
||||
@@ -8,7 +8,7 @@ mod user_logout_api;
|
||||
pub use user_logout_api::{UserLogoutApi, UserLogoutApiResp};
|
||||
|
||||
mod user_login_api;
|
||||
pub use user_login_api::{UserLoginApi, UserLoginApiResp};
|
||||
pub use user_login_api::{LoginError, UserLoginApi, UserLoginApiResp};
|
||||
|
||||
mod get_user_data_api;
|
||||
pub use get_user_data_api::{GetUserDataApi, GetUserDataApiResp};
|
||||
|
||||
@@ -52,3 +52,28 @@ impl UserLoginApi {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl UserLoginApiResp {
|
||||
pub fn error(&self) -> Option<LoginError> {
|
||||
match self.return_code {
|
||||
1 => None,
|
||||
100 => Some(LoginError::AlreadyLogged),
|
||||
102 => Some(LoginError::QRCodeExpired),
|
||||
103 => Some(LoginError::AccountUnregistered),
|
||||
error @ _ => Some(LoginError::Unknown { error }),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, snafu::Snafu)]
|
||||
pub enum LoginError {
|
||||
#[snafu(display("QRCode was expired"))]
|
||||
QRCodeExpired,
|
||||
#[snafu(display("You did not logout last session"))]
|
||||
AlreadyLogged,
|
||||
#[snafu(display("userId does not exist"))]
|
||||
AccountUnregistered,
|
||||
|
||||
#[snafu(display("Unknown error: {error}"))]
|
||||
Unknown { error: i32 },
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user