From 86cdadbbdf9694aab5a309fc222e2f0122853b7d Mon Sep 17 00:00:00 2001 From: key Date: Thu, 8 Aug 2024 10:30:36 +0200 Subject: [PATCH] Changed http Calls to https, and rename dockercompose to dpocker-compose.yml, Working callbacks --- dockercompose.yml => docker-compose.yml | 2 +- iot-callback/app.py | 35 +++++++++++++++++++++++-- iot-callback/data.json | 10 +++++++ 3 files changed, 44 insertions(+), 3 deletions(-) rename dockercompose.yml => docker-compose.yml (97%) create mode 100644 iot-callback/data.json diff --git a/dockercompose.yml b/docker-compose.yml similarity index 97% rename from dockercompose.yml rename to docker-compose.yml index 242a4fb..df2ac82 100644 --- a/dockercompose.yml +++ b/docker-compose.yml @@ -10,7 +10,7 @@ services: networks: - web ports: - - 5002:5000 + - 5001:5000 labels: - "traefik.enable=true" - "traefik.http.routers.iot-callback.rule=Host(`iot.keydev.me`)" diff --git a/iot-callback/app.py b/iot-callback/app.py index 6dd2e2d..f13a5d8 100644 --- a/iot-callback/app.py +++ b/iot-callback/app.py @@ -1,12 +1,43 @@ -from flask import Flask, request +from flask import Flask, request, jsonify +import json +import os app = Flask(__name__) +DATA_FILE = 'data.json' + @app.route('/callback', methods=['POST']) def callback(): data = request.json - # Process the data as needed + + if not data: + return jsonify({"error": "Invalid data"}), 400 + + # Read existing data + if os.path.exists(DATA_FILE): + with open(DATA_FILE, 'r') as f: + stored_data = json.load(f) + else: + stored_data = [] + + # Append new data + stored_data.append(data) + + # Write data back to file + with open(DATA_FILE, 'w') as f: + json.dump(stored_data, f, indent=4) + return 'Callback received', 200 +@app.route('/data', methods=['GET']) +def get_data(): + if os.path.exists(DATA_FILE): + with open(DATA_FILE, 'r') as f: + stored_data = json.load(f) + else: + stored_data = [] + + return jsonify(stored_data) + if __name__ == '__main__': app.run(host='0.0.0.0', port=5000) diff --git a/iot-callback/data.json b/iot-callback/data.json new file mode 100644 index 0000000..7703a78 --- /dev/null +++ b/iot-callback/data.json @@ -0,0 +1,10 @@ +[ + { + "customerId": "CHE-341216444", + "rcvTime": 1723103768, + "srcImsi": "901405710203483", + "srcIP": "10.128.24.42", + "srcPort": "50000", + "payload": "JAcFgIANH4E=" + } +] \ No newline at end of file