GPSMultiplexer/multiplexer.py
2025-07-15 13:46:48 +02:00

64 lines
1.7 KiB
Python

from flask import Flask, request, jsonify
import requests
import os
app = Flask(__name__)
REITTI_BASE_URL = os.getenv("REITTI_BASE_URL", None)
REITTI_API_KEY = os.getenv("REITTI_API_KEY", None)
DAWARICH_BASE_URL = os.getenv("DAWARICH_BASE_URL", None)
DAWARICH_API_KEY = os.getenv("DAWARICH_API_KEY", None)
@app.route('/')
def index():
return "OK"
@app.route('/ingest', methods=['POST'])
def ingest_request():
data = request.get_json()
errors = []
try:
if REITTI_BASE_URL is None or REITTI_API_KEY is None:
raise ValueError("Reitti API URL or Key is not configured!")
response1 = requests.post(
REITTI_BASE_URL,
'http://service1.com/api',
json=data,
headers=request.headers,
params={'api_key': REITTI_API_KEY}
)
except Exception as e:
app.logger.error(f'Error forwarding request to Reitti: {str(e)}')
errors.append({'service': 'reitti', 'status': 'error', 'message': str(e)})
try:
if DAWARICH_BASE_URL is None or DAWARICH_API_KEY is None:
raise ValueError("Dawarich API URL or Key is not configured!")
response2 = requests.post(
DAWARICH_BASE_URL,
json=data,
headers=request.headers,
params={'api_key': DAWARICH_API_KEY}
)
return jsonify({'status': 'success'}), 200
except Exception as e:
app.logger.error(f'Error forwarding request to Dawarich: {str(e)}')
errors.append({'service': 'dawarich', 'status': 'error', 'message': str(e)})
return jsonify(errors), 500
if __name__ == '__main__':
app.run(host="0.0.0.0", port=8000)