database.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. """Database module"""
  2. from app import session
  3. from app.models import Player, Department, DepartmentStat
  4. def get_latest_professor(state_id, department_type):
  5. """Get latest professor from database"""
  6. department = get_department(state_id, department_type)
  7. professor = department.department_stats.order_by(DepartmentStat.date_time.desc()).first()
  8. return professor
  9. def get_player(player_id, player_name):
  10. """Get player from database"""
  11. player = session.query(Player).get(player_id)
  12. if player is None:
  13. player = Player()
  14. player.id = player_id
  15. player.name = player_name
  16. session.add(player)
  17. session.commit()
  18. return player
  19. def get_department(state_id, department_type):
  20. """Get department from database"""
  21. department = session.query(Department).filter(
  22. Department.state_id == state_id
  23. ).filter(
  24. Department.department_type == department_type
  25. ).first()
  26. if department is None:
  27. department = Department()
  28. department.state_id = state_id
  29. department.department_type = department_type
  30. session.add(department)
  31. session.commit()
  32. return department
  33. def save_professors(state_id, department_type, professors):
  34. """Save professors to database"""
  35. department = get_department(state_id, department_type)
  36. for professor in professors:
  37. player = get_player(professor['id'], professor['name'])
  38. department_stat = DepartmentStat()
  39. department_stat.department_id = department.id
  40. department_stat.date_time = professor['date_time']
  41. department_stat.points = professor['points']
  42. department_stat.player_id = player.id
  43. session.add(department_stat)
  44. session.commit()