in cloud-functions/rideshare-plus-rest-api/main.py [0:0]
def entrypoint(request: flask.Request) -> flask.Response:
print("BEGIN: entrypoint")
try:
# Set CORS headers for the preflight request
if request.method == 'OPTIONS':
# Allows all requests from any origin with any header
# header and caches preflight response for an 3600s
headers = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': '*',
'Access-Control-Allow-Headers': '*',
'Access-Control-Max-Age': '3600'
}
print("END: entrypoint request.method == OPTIONS")
return ('', 204, headers)
request_json = request.get_json()
print("request_json: ", request_json)
mode = request_json['mode']
print("mode: ", mode)
print("END: entrypoint")
if mode == "predict":
return generate_predictions(request)
elif mode == "streaming_data":
return get_streaming_data(request)
elif mode == "save_configuration":
return save_configuration(request)
elif mode == "get_configuration":
return get_configuration(request)
else:
flask_response = flask.make_response(flask.jsonify({'Usage: mode not specified: predict or streaming_data'}), 200)
flask_response.headers['Access-Control-Allow-Origin'] = '*'
return flask_response
except Exception as e:
print ("Exception (entrypoint): " + str(e))
flask_response_error = flask.make_response(flask.jsonify({'errorMessage': str(e)}), 400)
flask_response_error.headers['Access-Control-Allow-Origin'] = '*'
return flask_response_error