def entrypoint()

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