database.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. """Database functons"""
  2. from app import SESSION
  3. from app.models import Player, TelegramAccount, TelegramHandle, PlayerTelegram, TelegramVerification
  4. def add_telegram_account(update):
  5. """Add new Telegram account"""
  6. session = SESSION()
  7. telegram_account = TelegramAccount()
  8. telegram_account.id = update.message.from_user.id
  9. telegram_account.name = update.message.from_user.name
  10. session.add(telegram_account)
  11. session.commit()
  12. session.close()
  13. return telegram_account
  14. def get_telegram_account(telegram_id):
  15. """Get Telegram account"""
  16. session = SESSION()
  17. telegram_account = _get_telegram_account(session, telegram_id)
  18. session.close()
  19. return telegram_account
  20. def _get_telegram_account(session, telegram_id):
  21. """Return telegram_account"""
  22. return session.query(TelegramAccount).get(telegram_id)
  23. def get_rr_accounts(telegram_account):
  24. """Get Rival Region accounts associated with Telegram account"""
  25. session = SESSION()
  26. rr_accounts = session.query(Player) \
  27. .join(Player.player_telegram) \
  28. .filter(PlayerTelegram.telegram_id == telegram_account.id) \
  29. .all()
  30. session.close()
  31. return rr_accounts