All checks were successful
continuous-integration/drone/push Build is passing
63 lines
1.7 KiB
Python
63 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(
|
|
f"{REITTI_BASE_URL}/api/v1/ingest/owntracks",
|
|
json=data,
|
|
headers=request.headers,
|
|
params={'token': 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(
|
|
f"{DAWARICH_BASE_URL}/api/v1/owntracks/points",
|
|
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)
|
|
|