def get_streaming_data()

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


def get_streaming_data(request: flask.Request) -> flask.Response:
    try:     
        print("BEGIN: get_streaming_data")
        project_id = os.environ['PROJECT_ID']
        print("project_id: ", project_id) 

        client = bigquery.Client()
        sql = "SELECT * FROM `" + project_id + ".rideshare_lakehouse_curated.website_realtime_dashboard`"
        query_job = client.query(sql);
        results = query_job.result()
        replies = []
        for row in results:
            row_dict = { "ride_count": row.ride_count,
            "average_ride_duration_minutes": row.average_ride_duration_minutes, 
            "average_total_amount": row.average_total_amount, 
            "average_ride_distance": row.average_ride_distance, 
            "max_pickup_location_zone": row.max_pickup_location_zone, 
            "max_pickup_ride_count": row.max_pickup_ride_count, 
            "max_dropoff_location_zone": row.max_dropoff_location_zone, 
            "max_dropoff_ride_count": row.max_dropoff_ride_count
            }
            replies.append(row_dict)
            # print("{} : {} ".format(row.urride_countl, row.average_ride_duration_minutes))
       
        flask_response = flask.make_response(flask.jsonify({'data': replies}), 200)
        flask_response.headers['Access-Control-Allow-Origin'] = '*'
        print("END: get_streaming_data")
        return flask_response

    except Exception as e:
        print ("Exception (get_streaming_data): " + 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