|
1 | 1 | from flask import Flask, jsonify, request |
| 2 | +from werkzeug.middleware.dispatcher import DispatcherMiddleware |
2 | 3 | import boto3, os, json |
3 | 4 |
|
4 | | -app = Flask(__name__) |
| 5 | +flask_app = Flask(__name__) |
5 | 6 |
|
6 | | -# Initialize SQS |
7 | | -region = "ap-south-1" |
8 | | -sqs = boto3.client("sqs", region_name=region) |
| 7 | +sqs = boto3.client("sqs", region_name="ap-south-1") |
9 | 8 | queue_url = os.environ.get("ORDER_QUEUE_URL", "") |
10 | 9 |
|
11 | | -@app.route('/order', methods=['POST']) |
| 10 | +@flask_app.route('/order', methods=['POST']) |
12 | 11 | def place_order(): |
13 | | - if not queue_url: |
14 | | - return jsonify({"error": "ORDER_QUEUE_URL not configured"}), 500 |
15 | | - |
16 | 12 | data = request.get_json() |
17 | | - try: |
18 | | - sqs.send_message(QueueUrl=queue_url, MessageBody=json.dumps(data)) |
19 | | - return jsonify({"message": "Order placed successfully"}), 201 |
20 | | - except Exception as e: |
21 | | - return jsonify({"error": str(e)}), 500 |
| 13 | + sqs.send_message(QueueUrl=queue_url, MessageBody=json.dumps(data)) |
| 14 | + return jsonify({"message": "Order placed successfully"}), 201 |
22 | 15 |
|
23 | | -@app.route('/orders', methods=['GET']) |
| 16 | +@flask_app.route('/orders', methods=['GET']) |
24 | 17 | def list_orders(): |
25 | | - return jsonify([ |
26 | | - {"id": 1, "product_id": 1, "status": "confirmed"} |
27 | | - ]), 200 |
| 18 | + return jsonify([{"id": 1, "product_id": 1, "status": "confirmed"}]) |
28 | 19 |
|
29 | | -@app.route('/health', methods=['GET']) |
| 20 | +@flask_app.route('/health', methods=['GET']) |
30 | 21 | def health(): |
31 | | - return "Order service is healthy", 200 |
| 22 | + return "Order service healthy", 200 |
| 23 | + |
| 24 | +# Dispatcher to map /order prefix |
| 25 | +app = DispatcherMiddleware(Flask('dummy_root'), { |
| 26 | + '/order': flask_app |
| 27 | +}) |
0 commit comments