You've already forked Travel-Agent
chore: Added message deletions and small code refactoring
This commit is contained in:
@@ -8,7 +8,7 @@ from aiogram.types import Message, ReplyKeyboardRemove
|
||||
from app import messages, session
|
||||
from app.keyboards.builders import profile
|
||||
from app.models.user import User
|
||||
from app.utils.states import RegistrationForm
|
||||
from app.utils.states import delete_message_from_state, RegistrationForm
|
||||
|
||||
|
||||
router = Router(name="start_command")
|
||||
@@ -51,9 +51,16 @@ async def username_handler(message: Message, state: FSMContext) -> None:
|
||||
value=username,
|
||||
)
|
||||
except AssertionError as e:
|
||||
await message.answer(str(e))
|
||||
await message.delete()
|
||||
await delete_message_from_state(state)
|
||||
|
||||
error_message = await message.answer(str(e))
|
||||
await state.update_data(previous_message=error_message)
|
||||
|
||||
return
|
||||
|
||||
await delete_message_from_state(state)
|
||||
|
||||
await state.update_data(username=validated_username)
|
||||
await state.set_state(RegistrationForm.age)
|
||||
|
||||
@@ -76,9 +83,16 @@ async def age_handler(message: Message, state: FSMContext) -> None:
|
||||
try:
|
||||
validated_age = User().validate_age(key="age", value=age)
|
||||
except AssertionError as e:
|
||||
await message.answer(str(e))
|
||||
await message.delete()
|
||||
await delete_message_from_state(state)
|
||||
|
||||
error_message = await message.answer(str(e))
|
||||
await state.update_data(previous_message=error_message)
|
||||
|
||||
return
|
||||
|
||||
await delete_message_from_state(state)
|
||||
|
||||
await state.update_data(age=validated_age)
|
||||
await state.set_state(RegistrationForm.sex)
|
||||
|
||||
@@ -98,11 +112,20 @@ async def sex_handler(message: Message, state: FSMContext) -> None:
|
||||
|
||||
sex = message.text.strip().lower()
|
||||
|
||||
if sex not in ["male", "female"]:
|
||||
await message.answer(messages.VALIDATION_ERROR_MESSAGE)
|
||||
try:
|
||||
validated_sex = User().validate_sex(key="sex", value=sex)
|
||||
except AssertionError as e:
|
||||
await message.delete()
|
||||
await delete_message_from_state(state)
|
||||
|
||||
error_message = await message.answer(str(e))
|
||||
await state.update_data(previous_message=error_message)
|
||||
|
||||
return
|
||||
|
||||
await state.update_data(sex=sex)
|
||||
await delete_message_from_state(state)
|
||||
|
||||
await state.update_data(sex=validated_sex)
|
||||
await state.set_state(RegistrationForm.bio)
|
||||
|
||||
await message.answer(
|
||||
@@ -123,15 +146,24 @@ async def bio_handler(message: Message, state: FSMContext) -> None:
|
||||
await state.update_data(bio=None)
|
||||
await state.set_state(RegistrationForm.location)
|
||||
|
||||
await delete_message_from_state(state)
|
||||
|
||||
await message.answer(messages.INPUT_BIO_SKIPPED)
|
||||
await message.answer(messages.INPUT_LOCATION)
|
||||
else:
|
||||
try:
|
||||
validated_bio = User().validate_bio(key="bio", value=bio)
|
||||
except AssertionError as e:
|
||||
await message.answer(str(e))
|
||||
await message.delete()
|
||||
await delete_message_from_state(state)
|
||||
|
||||
error_message = await message.answer(str(e))
|
||||
await state.update_data(previous_message=error_message)
|
||||
|
||||
return
|
||||
|
||||
await delete_message_from_state(state)
|
||||
|
||||
await state.update_data(bio=validated_bio)
|
||||
await state.set_state(RegistrationForm.location)
|
||||
|
||||
@@ -149,7 +181,12 @@ async def location_handler(message: Message, state: FSMContext) -> None:
|
||||
location = message.text.strip().split(", ")
|
||||
|
||||
if len(location) != 2:
|
||||
await message.answer(messages.VALIDATION_ERROR_MESSAGE)
|
||||
await message.delete()
|
||||
await delete_message_from_state(state)
|
||||
|
||||
error_message = await message.answer(messages.VALIDATION_ERROR_MESSAGE)
|
||||
await state.update_data(previous_message=error_message)
|
||||
|
||||
return
|
||||
|
||||
country, city = location
|
||||
@@ -160,7 +197,12 @@ async def location_handler(message: Message, state: FSMContext) -> None:
|
||||
value=country,
|
||||
)
|
||||
except AssertionError as e:
|
||||
await message.answer(str(e))
|
||||
await message.delete()
|
||||
await delete_message_from_state(state)
|
||||
|
||||
error_message = await message.answer(str(e))
|
||||
await state.update_data(previous_message=error_message)
|
||||
|
||||
return
|
||||
|
||||
try:
|
||||
@@ -169,9 +211,16 @@ async def location_handler(message: Message, state: FSMContext) -> None:
|
||||
country=validated_country,
|
||||
)
|
||||
except AssertionError as e:
|
||||
await message.answer(str(e))
|
||||
await message.delete()
|
||||
await delete_message_from_state(state)
|
||||
|
||||
error_message = await message.answer(str(e))
|
||||
await state.update_data(previous_message=error_message)
|
||||
|
||||
return
|
||||
|
||||
await delete_message_from_state(state)
|
||||
|
||||
await state.update_data(location=[validated_country, validated_city])
|
||||
data = await state.get_data()
|
||||
await state.clear()
|
||||
@@ -187,6 +236,8 @@ async def location_handler(message: Message, state: FSMContext) -> None:
|
||||
data["country"] = data["location"][0]
|
||||
data["city"] = data["location"][1]
|
||||
del data["location"]
|
||||
del data["previous_message"]
|
||||
|
||||
session.add(User(**data))
|
||||
session.commit()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user