Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
2.7 kB
1
Indexable
Never
from flask import Flask, jsonify, request
from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider

app = Flask(__name__)
contact_points = ['172.16.177.58']
auth_provider = PlainTextAuthProvider('hobs_analytics', 'hobs_analytics')
cluster = Cluster(contact_points=contact_points, auth_provider=auth_provider)
session = cluster.connect()

@app.route('/details', methods=['GET'])
def get_details():
    username = request.args.get('username')
    event_date = request.args.get('event_date')
    status = request.args.get('status')
    start_date = request.args.get('start_date')
    end_date = request.args.get('end_date')

    if username is not None and event_date is not None and status is None and start_date is None and end_date is None:
        rows = session.execute("SELECT * FROM hos_cart_details WHERE username=%s AND event_date=%s", (username, event_date))
    elif username is not None and event_date is None and status is None and start_date is None and end_date is None:
        rows = session.execute("SELECT * FROM hobs_ods_staging.hos_cart_details WHERE username=%s", (username,))
    elif username is None and event_date is not None and status is None and start_date is None and end_date is None:
        rows = session.execute("SELECT * FROM hos_cart_details_by_date WHERE event_date=%s", (event_date,))
    elif username is None and event_date is None and status is not None and start_date is None and end_date is None:
        rows = session.execute("SELECT * FROM hobs_ods_staging.hos_cart_details_by_status WHERE status=%s", (status,))
    elif username is None and event_date is None and status is None and start_date is not None and end_date is not None:
        rows = session.execute("SELECT * FROM hos_cart_details WHERE event_date>=%s AND event_date<=%s", (start_date, end_date))
    else:
        return jsonify({'error': 'Invalid request parameters'})

    results = []
    for row in rows:
        results.append({
            'username': row.username,
            'event_date': str(row.event_date),
            'valuetype': row.valuetype,
            'key': row.key,
            'buid': row.buid,
            'businessid': row.businessid,
            'createdtime': str(row.createdtime),
            'opid': row.opid,
            'status': row.status,
            'types': row.types,
            'updatedtime': str(row.updatedtime),
            'value': row.value.hex() if row.value is not None else None
            })
    print(results)
    return jsonify(results)

if __name__ == '__main__':
    app.run(host='172.16.177.58',port=11423)