38 lines
1.2 KiB
Python
Raw Normal View History

from config.contents import opted_off, opted_off_failed
from exception.notFoundException import NotFoundException
from repository.userRepository import UserRepository
from telegram.ext.callbackcontext import CallbackContext
from telegram.ext.commandhandler import CommandHandler
from telegram.update import Update
from handler.abstractHandler import AbstractHandler
class OutHandler(AbstractHandler):
bot_handler: CommandHandler
user_repository: UserRepository
def __init__(self) -> None:
self.bot_handler = CommandHandler('out', self.handle)
self.user_repository = UserRepository()
def handle(self, update: Update, context: CallbackContext) -> None:
updateData = self.get_update_data(update)
try:
user = self.user_repository.get_by_id(updateData.user_id)
if not user.is_in_chat(updateData.chat_id):
raise NotFoundException()
except NotFoundException:
self.reply(update, opted_off_failed)
return
user.remove_from_chat(updateData.chat_id)
self.user_repository.save(user)
self.reply(update, opted_off)
def get_bot_handler(self) -> CommandHandler:
return self.bot_handler