def generate_predictions()

in cloud-functions/rideshare-plus-rest-api/main.py [0:0]


def generate_predictions(request: flask.Request) -> flask.Response:
    try:
        print("BEGIN: generate_predictions")
        # {'mode': 'predict', 'ride_distance': 'short', 'is_raining': False, 'is_snowing': False}
        request_json = request.get_json()
        print("request_json: ", request_json)
        ride_distance = str(request_json['ride_distance']).lower()
        is_raining = str(request_json['is_raining']).upper()
        is_snowing = str(request_json['is_snowing']).upper()
        print("ride_distance: ", ride_distance)
        print("is_raining: ", is_raining)
        print("is_snowing: ", is_snowing)      
        project_id = os.environ['PROJECT_ID']
        print("project_id: ", project_id)      

        client = bigquery.Client()
        sql = "CALL `" + project_id + ".rideshare_lakehouse_curated.sp_website_score_data`('" + \
                ride_distance + "', " + is_raining + ", " + is_snowing + ", 0, 0);"
        print("sql: ", sql)
        query_job = client.query(sql);
        results = query_job.result()
        replies = []
        row_dict = { "success" : True}
        replies.append(row_dict)
        flask_response = flask.make_response(flask.jsonify({'data': replies}), 200)
        flask_response.headers['Access-Control-Allow-Origin'] = '*'
        print("END: generate_predictions")
        return flask_response
    except Exception as e:
        print ("Exception (generate_predictions): " + 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