diff --git a/rpi/controllers/device_controller.py b/rpi/controllers/device_controller.py index e69de29b..dbefc12e 100644 --- a/rpi/controllers/device_controller.py +++ b/rpi/controllers/device_controller.py @@ -0,0 +1,52 @@ +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']) \ No newline at end of file diff --git a/rpi/requirements.txt b/rpi/requirements.txt index 3b574923..d61d48ea 100644 --- a/rpi/requirements.txt +++ b/rpi/requirements.txt @@ -13,5 +13,5 @@ pyserial opencv-python numpy ultralytics - -torch \ No newline at end of file +torch +flask \ No newline at end of file diff --git a/rpi/server.py b/rpi/server.py index e69de29b..84cdcc6a 100644 --- a/rpi/server.py +++ b/rpi/server.py @@ -0,0 +1,9 @@ +from flask import Flask +from controllers.device_controller import api_bp + +app = Flask(__name__) + +app.register_blueprint(api_bp, url_prefix='/devices') + +if __name__ == '__main__': + app.run(host="0.0.0.0", port=5000, debug=True) \ No newline at end of file