Untitled
unknown
plain_text
2 years ago
2.2 kB
8
Indexable
from flask import Flask, jsonify
from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider
from cassandra.cqlengine import columns
from cassandra.cqlengine.models import Model
from cassandra.cqlengine.management import sync_table
# Define the Cassandra connection properties
cass_host = '<cassandra_host>'
cass_port = '<cassandra_port>'
cass_username = '<cassandra_username>'
cass_password = '<cassandra_password>'
cass_keyspace = 'hobs_ods_staging'
# Create the Flask app
app = Flask(__name__)
# Define the Cassandra connection and session objects
auth_provider = PlainTextAuthProvider(username=cass_username, password=cass_password)
cluster = Cluster([cass_host], port=cass_port, auth_provider=auth_provider)
session = cluster.connect(cass_keyspace)
# Define the model class for the hos_cart_details table
class HosCartDetails(Model):
hoscd_event_date = columns.Date(primary_key=True, partition_key=True)
hoscd_businessid = columns.Text(primary_key=True, partition_key=True)
hoscd_key = columns.Text(primary_key=True)
hoscd_buid = columns.Text()
hoscd_createdtime = columns.DateTime()
hoscd_opid = columns.Text()
hoscd_status = columns.Text()
hoscd_type = columns.Text()
hoscd_updatedtime = columns.DateTime()
hoscd_username = columns.Text()
hoscd_value = columns.Blob()
hoscd_valuetype = columns.Text()
# Sync the HosCartDetails model with the Cassandra keyspace
sync_table(HosCartDetails)
# Define the API endpoint for fetching data
@app.route('/<businessid>/<status>/<hoscd_event_date>', methods=['GET'])
def get_data(businessid, status, hoscd_event_date):
# Query the hos_cart_details table based on the provided parameters
query = HosCartDetails.objects.filter(
HosCartDetails.hoscd_businessid == businessid,
HosCartDetails.hoscd_status == status,
HosCartDetails.hoscd_event_date == hoscd_event_date
).allow_filtering()
# Extract the username data from the query results
usernames = [row.hoscd_username for row in query]
# Return the usernames as a JSON response
return jsonify({'usernames': usernames})
if __name__ == '__main__':
app.run(debug=True)
Editor is loading...