database.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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. session = Session()
  7. department = get_department(session, state_id, department_type)
  8. professor = department.department_stats.order_by(DepartmentStat.date_time.desc()).first()
  9. session.close()
  10. return professor
  11. def get_player(session, player_id, player_name):
  12. """Get player from database"""
  13. player = session.query(Player).get(player_id)
  14. if player is None:
  15. player = Player()
  16. player.id = player_id
  17. player.name = player_name
  18. session.add(player)
  19. session.commit()
  20. return player
  21. def get_department(session, state_id, department_type):
  22. """Get department from database"""
  23. department = session.query(Department).filter(
  24. Department.state_id == state_id
  25. ).filter(
  26. Department.department_type == department_type
  27. ).first()
  28. if department is None:
  29. department = Department()
  30. department.state_id = state_id
  31. department.department_type = department_type
  32. session.add(department)
  33. session.commit()
  34. return department
  35. def save_professors(state_id, department_type, professors):
  36. """Save professors to database"""
  37. session = Session()
  38. department = get_department(session, state_id, department_type)
  39. for professor in professors:
  40. player = get_player(session, professor['id'], professor['name'])
  41. department_stat = DepartmentStat()
  42. department_stat.department_id = department.id
  43. department_stat.date_time = professor['date_time']
  44. department_stat.points = professor['points']
  45. department_stat.player_id = player.id
  46. session.add(department_stat)
  47. session.commit()
  48. session.close()