dse-assignment/components/x_way/x_way_server.py
2021-06-13 18:32:29 +02:00

73 lines
1.9 KiB
Python

import requests
from bson import json_util
from flask import Flask
from flask_cors import CORS
from flask import request
import json;
app = Flask(__name__)
CORS(app)
ENTITY_IDENT_URL = 'http://entityident:5002/api/v1/resources/'
EVENT_STORE_URL = 'http://eventstore:5001/api/keys/'
@app.route('/api/v1/resources/car_events', methods=['GET'])
def get_cars_events():
vin = request.args.get('vin')
try:
response = requests.get(EVENT_STORE_URL + 'DAF:' + vin + '/0/')
cars = json.loads(response.text)
except requests.exceptions.ConnectionError as e:
print("Is the EVENT_STORE_URL running and reachable?")
raise e
return json_util.dumps(cars)
@app.route('/api/v1/resources/traffic_light_events', methods=['GET'])
def get_traffic_light_events():
id = request.args.get('id')
try:
response = requests.get(EVENT_STORE_URL + 'TL:' + id + '/0/')
traffic_lights = json.loads(response.text)
except requests.exceptions.ConnectionError as e:
print("Is the EVENT_STORE_URL running and reachable?")
raise e
return json_util.dumps(traffic_lights)
@app.route('/api/v1/resources/cars', methods=['GET'])
def get_cars():
try:
response = requests.get(ENTITY_IDENT_URL + 'cars')
cars = response.json()['cursor']
except requests.exceptions.ConnectionError as e:
print("Is the entity_ident_server running and reachable?")
raise e
return json_util.dumps(cars)
@app.route('/api/v1/resources/traffic_lights', methods=['GET'])
def get_traffic_lights():
try:
response = requests.get(ENTITY_IDENT_URL + 'traffic_lights')
traffic_lights = response.json()['cursor']
except requests.exceptions.ConnectionError as e:
print("Is the entity_ident_server running and reachable?")
raise e
return json_util.dumps(traffic_lights)
if __name__ == '__main__':
app.run('0.0.0.0', 5004)