52 lines
1.6 KiB
Python
52 lines
1.6 KiB
Python
from flask import Blueprint, jsonify, request
|
|
|
|
api_bp = Blueprint('devices', __name__)
|
|
|
|
class DeviceController:
|
|
|
|
def __init__(self):
|
|
pass
|
|
|
|
def ping(self):
|
|
try :
|
|
print("Received ping request")
|
|
return "Hello from server", 200
|
|
except Exception as e:
|
|
print(e)
|
|
return "", 400
|
|
|
|
def start_party(self):
|
|
pass
|
|
|
|
def register_rfid(self):
|
|
pass
|
|
|
|
def notify_position(self):
|
|
payload = request.json
|
|
if not payload or "data" not in payload:
|
|
return {"error": "No 'data' field"}, 400
|
|
|
|
data = payload["data"]
|
|
|
|
# Vérifier que latitude et longitude existent
|
|
latitude = data.get("latitude")
|
|
longitude = data.get("longitude")
|
|
if latitude is None or longitude is None:
|
|
return {"error": "Missing latitude or longitude"}, 400
|
|
|
|
# Affichage safe avec f-string
|
|
print(f"Received position data:\nLatitude: {latitude}, Longitude: {longitude}")
|
|
|
|
return {"status": "ok"}, 200
|
|
|
|
def notify_luminosity(self):
|
|
return jsonify({"message": "Hello from DeviceController!"})
|
|
|
|
|
|
controller = DeviceController()
|
|
|
|
api_bp.add_url_rule('/ping', view_func=controller.ping, methods=['GET'])
|
|
api_bp.add_url_rule('/start-party', view_func=controller.start_party, methods=['POST'])
|
|
api_bp.add_url_rule('/register-field', view_func=controller.register_rfid, methods=['POST'])
|
|
api_bp.add_url_rule('/notify-position', view_func=controller.notify_position, methods=['POST'])
|
|
api_bp.add_url_rule('/notify-luminosity', view_func=controller.notify_luminosity, methods=['POST']) |