Handle AlreadyExists (409) during registration

This commit is contained in:
2025-10-25 19:51:43 +02:00
parent 0d028b6a66
commit 17ef8a7f3d
3 changed files with 9 additions and 2 deletions

View File

@@ -19,9 +19,10 @@ pub async fn message_handler(message: Message, bot: CacheMe<Throttle<Bot>>) -> a
let message_text = match result { let message_text = match result {
register::RegisterStatus::Success { ref username } => format_registered_message(username), register::RegisterStatus::Success { ref username } => format_registered_message(username),
register::RegisterStatus::RegisterFail => strings::ALREADY_REGISTERED.to_string(), register::RegisterStatus::RegisterFail => strings::MAY_BE_ALREADY_REGISTERED.to_string(),
register::RegisterStatus::LimitExtended => strings::LIMIT_EXTENDED_MESSAGE.to_string(), register::RegisterStatus::LimitExtended => strings::LIMIT_EXTENDED_MESSAGE.to_string(),
register::RegisterStatus::WrongToken => strings::ERROR_MESSAGE.to_string(), register::RegisterStatus::WrongToken => strings::ERROR_MESSAGE.to_string(),
register::RegisterStatus::AlreadyExists => strings::ALREADY_EXISTS_MESSAGE.to_string(),
}; };
bot.send_message(message.chat.id, message_text) bot.send_message(message.chat.id, message_text)

View File

@@ -12,12 +12,14 @@ pub enum RegisterStatus {
WrongToken, WrongToken,
RegisterFail, RegisterFail,
LimitExtended, LimitExtended,
AlreadyExists,
} }
#[derive(Debug)] #[derive(Debug)]
pub enum RegisterRequestStatus { pub enum RegisterRequestStatus {
Success, Success,
LimitExtended, LimitExtended,
AlreadyExists,
UnknownError, UnknownError,
} }
@@ -52,6 +54,7 @@ async fn make_register_request(
Ok(match result.status().as_u16() { Ok(match result.status().as_u16() {
200 => RegisterRequestStatus::Success, 200 => RegisterRequestStatus::Success,
402 => RegisterRequestStatus::LimitExtended, 402 => RegisterRequestStatus::LimitExtended,
409 => RegisterRequestStatus::AlreadyExists,
_ => RegisterRequestStatus::UnknownError, _ => RegisterRequestStatus::UnknownError,
}) })
} }
@@ -81,5 +84,6 @@ pub async fn register(user_id: UserId, message_text: &str) -> RegisterStatus {
}, },
RegisterRequestStatus::LimitExtended => RegisterStatus::LimitExtended, RegisterRequestStatus::LimitExtended => RegisterStatus::LimitExtended,
RegisterRequestStatus::UnknownError => RegisterStatus::RegisterFail, RegisterRequestStatus::UnknownError => RegisterStatus::RegisterFail,
RegisterRequestStatus::AlreadyExists => RegisterStatus::AlreadyExists,
} }
} }

View File

@@ -2,8 +2,10 @@ pub fn format_registered_message(username: &str) -> String {
format!("@{username} зарегистрирован и через несколько минут будет подключен!") format!("@{username} зарегистрирован и через несколько минут будет подключен!")
} }
pub const ALREADY_REGISTERED: &str = "Ошибка! Возможно бот уже зарегистрирован!"; pub const MAY_BE_ALREADY_REGISTERED: &str = "Ошибка! Возможно бот уже зарегистрирован!";
pub const ERROR_MESSAGE: &str = "Ошибка! Что-то не так с ботом!"; pub const ERROR_MESSAGE: &str = "Ошибка! Что-то не так с ботом!";
pub const LIMIT_EXTENDED_MESSAGE: &str = "Вы достигли максимального количества ботов!"; pub const LIMIT_EXTENDED_MESSAGE: &str = "Вы достигли максимального количества ботов!";
pub const ALREADY_EXISTS_MESSAGE: &str = "Ошибка! Бот с таким токеном уже зарегистрирован!";