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( f"{REITTI_BASE_URL}/api/v1/ingest/owntracks", json=data, headers=request.headers, params={'token': REITTI_API_KEY} ) app.logger.info(f'Forwarded point to Reitti: {response1.status_code}') 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( f"{DAWARICH_BASE_URL}/api/v1/owntracks/points", json=data, headers=request.headers, params={'api_key': DAWARICH_API_KEY} ) app.logger.info(f'Forwarded point to Dawarich: {response2.status_code}') 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 return jsonify({'status': 'success'}), 200 if __name__ == '__main__': app.run(host="0.0.0.0", port=8000)