server.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. # -*- coding: utf-8 -*-
  2. import datetime
  3. import json
  4. from apscheduler.schedulers.background import BackgroundScheduler
  5. from flask import request
  6. from . import app
  7. from simulation.models import User_info, db
  8. from simulation.encrypt_message import decrypt_message
  9. db.create_all()
  10. def sensor():
  11. """ Function for test purposes. """
  12. print("Scheduler is alive!")
  13. sched = BackgroundScheduler(daemon=True)
  14. sched.add_job(sensor, "interval", minutes=1)
  15. sched.start()
  16. @app.route("/api/user_info", methods=["POST"])
  17. def user_info():
  18. """ Function for parsing user info"""
  19. data = request.data
  20. try:
  21. data = decrypt_message(data)
  22. batches = json.loads(data)
  23. for batch in batches:
  24. line = json.loads(batch)
  25. timestamp = datetime.datetime.fromtimestamp(line["timestamp"])
  26. user_id = line["user_id"]
  27. user = User_info(timestamp=timestamp, user_id=user_id)
  28. db.session.merge(user)
  29. db.session.commit()
  30. except Exception as e:
  31. return {"status": 0, "error": str(e)}
  32. return {"status": 1}