Refactor users creating separate classes, service and repository

This commit is contained in:
Alessandro Franchini
2025-08-22 02:56:02 +02:00
parent 58c0916deb
commit 1d423c5ea2
16 changed files with 309 additions and 276 deletions

24
bot.py
View File

@@ -1,27 +1,27 @@
from telegram.ext import Application, CommandHandler, MessageHandler, CallbackQueryHandler
from functools import partial
from config import BotConfig
from models import Users
from services import GatesService, AVConnectService
from repository import GatesRepository
from services import GatesService, AVConnectService, UsersService
from repository import GatesRepository, UsersRepository
from handlers import *
bot_config = BotConfig("lagomareGateKeeperBot")
gates_repository = GatesRepository()
avconnect_service = AVConnectService()
gates_service = GatesService(gates_repository, avconnect_service)
users = Users()
users_repository = UsersRepository()
users_service = UsersService(users_repository)
def main():
app = Application.builder().token(bot_config.token).post_init(partial(post_init, bot_config=bot_config)).build()
app.add_handler(MessageHandler(None, partial(updateuser, users=users)), group=1)
app.add_handler(CommandHandler("start", partial(start, users=users)))
app.add_handler(CommandHandler("setcredentials", partial(setcredentials, users=users)))
app.add_handler(CommandHandler("opengate", partial(opengate, users=users, gates=gates_service)))
app.add_handler(CommandHandler("requestaccess", partial(requestaccess, users=users)))
app.add_handler(CommandHandler("grantaccess", partial(grantaccess, users=users)))
app.add_handler(CallbackQueryHandler(partial(handle_main_menu_callback, users=users, gates=gates_service), pattern="^(open_gate_menu|request_access)$"))
app.add_handler(CallbackQueryHandler(partial(handle_gate_open_callback, users=users, gates=gates_service), pattern="^opengate_"))
# app.add_handler(MessageHandler(None, partial(handle_message, users=users_service)), group=1)
app.add_handler(CommandHandler("start", partial(start, users=users_service)))
app.add_handler(CommandHandler("setcredentials", partial(setcredentials, users=users_service)))
app.add_handler(CommandHandler("opengate", partial(opengate, users=users_service, gates=gates_service)))
app.add_handler(CommandHandler("requestaccess", partial(requestaccess, users=users_service)))
app.add_handler(CommandHandler("grantaccess", partial(grantaccess, users=users_service)))
app.add_handler(CallbackQueryHandler(partial(handle_main_menu_callback, users=users_service, gates=gates_service), pattern="^(open_gate_menu|request_access)$"))
app.add_handler(CallbackQueryHandler(partial(handle_gate_open_callback, users=users_service, gates=gates_service), pattern="^opengate_"))
app.run_polling()
if __name__ == "__main__":