async def check_and_change_master_param(message: types.Message, state: FSMContext): async with state.proxy() as data: contact_name = data.get('contact_name') employee_id = data.get('employee_id') update_param = data.get('update_param') value = message.text if update_param == 'phone_number': default_number = message.text if not re.match(NUMBER_PATTERN, default_number): logger.info("Invalid number at get_employee handler") await message.answer( 'Вы ввели номер телефона в неверном формате.\n' 'Попробуйте ввести ещё раз!') raise CancelHandler() value = parse_number(default_number) if value.find("+") == -1: value = "+" + value await message.answer( f'Вы успешно изменили номер телефона {contact_name}', reply_markup=generate_start_keyboard(message)) elif update_param == 'name': await message.answer( f'Вы успешно изменили имя мастера на {message.text}', reply_markup=generate_start_keyboard(message)) else: await message.answer( f'Вы успешно изменили комментарий мастера на "{message.text}"', reply_markup=generate_start_keyboard(message)) await manager.employee.update_entry(update_values={update_param: value}, employee_id=employee_id) await StartState.in_general_menu.set()
async def get_employee(msg: types.Message, state: FSMContext): default_number = msg.text if not re.match(NUMBER_PATTERN, default_number): logger.info("Invalid number at get_employee handler") await msg.answer('Вы ввели номер телефона в неверном формате.\n' 'Попробуйте ввести ещё раз!') raise CancelHandler() number = parse_number(default_number) master = await manager.employee.select_master_by_phone( phone_number=number, default_number=default_number ) if not isinstance(master, Record): await msg.answer('Такого мастера не найдено.\n' 'Можешь добавить его в базу, нажав на кнопку ниже', reply_markup=add_master_keyboard) await state.update_data( phone_number=default_number ) await SearchMaster.add_master.set() raise CancelHandler() text = f"""Номер в базе данных: {master.get('employee_id')} Имя: {master.get('name')} Номер: {master.get('phone_number')} Комментарий: {master.get('comment') if master.get('comment') is not None else '-'}\n""" await msg.answer( text=text, reply_markup=generate_start_keyboard(msg) ) await StartState.in_general_menu.set()
async def handle_code(message: types.Message): answer = await check_promo(message) if not answer: raise CancelHandler() await message.answer( 'Вы успешно зарегистрировались в боте используя код доступа', reply_markup=generate_start_keyboard(message)) await StartState.in_general_menu.set()
async def add_new_master(call: types.CallbackQuery, state: FSMContext): async with state.proxy() as data: phone_number = data.get('phone_number') name = data.get('name') comment = data.get('comment') master_type = data.get('master_type') info = data.get('info') await manager.employee.add_entry( employee_type=master_type, type_of_employment=comment, name=name, phone_number=phone_number, comment=info ) await call.message.answer('Успешно добавил нового сотрудника', reply_markup=generate_start_keyboard(call)) await state.reset_data() await StartState.in_general_menu.set()
async def start(message: types.Message): await message.answer(text='Вы в главном меню!', reply_markup=generate_start_keyboard(message)) await StartState.in_general_menu.set()
async def not_add_master(call: types.CallbackQuery, state: FSMContext): await state.reset_data() await StartState.in_general_menu.set() await call.message.answer('Вы успешно отменили добавление работника', reply_markup=generate_start_keyboard(call))