Skip to content

Commit b8ed2ec

Browse files
2.9
1 parent feeb80f commit b8ed2ec

3 files changed

Lines changed: 46 additions & 47 deletions

File tree

order-service/app.py

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,27 @@
11
from flask import Flask, jsonify, request
2+
from werkzeug.middleware.dispatcher import DispatcherMiddleware
23
import boto3, os, json
34

4-
app = Flask(__name__)
5+
flask_app = Flask(__name__)
56

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")
98
queue_url = os.environ.get("ORDER_QUEUE_URL", "")
109

11-
@app.route('/order', methods=['POST'])
10+
@flask_app.route('/order', methods=['POST'])
1211
def place_order():
13-
if not queue_url:
14-
return jsonify({"error": "ORDER_QUEUE_URL not configured"}), 500
15-
1612
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
2215

23-
@app.route('/orders', methods=['GET'])
16+
@flask_app.route('/orders', methods=['GET'])
2417
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"}])
2819

29-
@app.route('/health', methods=['GET'])
20+
@flask_app.route('/health', methods=['GET'])
3021
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+
})

product-service/app.py

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,25 @@
11
from flask import Flask, jsonify, request
2+
from werkzeug.middleware.dispatcher import DispatcherMiddleware
23

3-
app = Flask(__name__)
4+
flask_app = Flask(__name__)
45

5-
# In-memory list for demo purposes
6-
products = [
7-
{"id": 1, "name": "Laptop"},
8-
{"id": 2, "name": "Phone"}
9-
]
10-
11-
@app.route('/products', methods=['GET'])
6+
@flask_app.route('/products', methods=['GET'])
127
def list_products():
13-
return jsonify(products), 200
8+
return jsonify([
9+
{"id": 1, "name": "Laptop"},
10+
{"id": 2, "name": "Phone"}
11+
])
1412

15-
@app.route('/products', methods=['POST'])
13+
@flask_app.route('/products', methods=['POST'])
1614
def add_product():
1715
data = request.get_json()
18-
product_name = data.get('name')
19-
new_id = len(products) + 1
20-
new_product = {"id": new_id, "name": product_name}
21-
products.append(new_product)
22-
return jsonify({"message": f"Product '{product_name}' added"}), 201
16+
return jsonify({"message": f"Product '{data.get('name')}' added"}), 201
2317

24-
@app.route('/health', methods=['GET'])
18+
@flask_app.route('/health', methods=['GET'])
2519
def health():
26-
return "Product service is healthy", 200
20+
return "Product service healthy", 200
21+
22+
# Dispatcher to map /product prefix
23+
app = DispatcherMiddleware(Flask('dummy_root'), {
24+
'/product': flask_app
25+
})

user-service/app.py

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
from flask import Flask, jsonify, request
2+
from werkzeug.middleware.dispatcher import DispatcherMiddleware
23

3-
app = Flask(__name__)
4+
flask_app = Flask(__name__)
45

5-
@app.route('/register', methods=['POST'])
6-
def register():
6+
@flask_app.route('/login', methods=['POST'])
7+
def login():
78
data = request.get_json()
8-
username = data.get('username')
9-
return jsonify({"message": f"User {username} registered"}), 201
9+
return jsonify({"token": "dummy-token-for-" + data.get("username")})
1010

11-
@app.route('/login', methods=['POST'])
12-
def login():
11+
@flask_app.route('/register', methods=['POST'])
12+
def register():
1313
data = request.get_json()
14-
username = data.get('username')
15-
return jsonify({"token": f"dummy-token-for-{username}"}), 200
14+
return jsonify({"message": f"User {data.get('username')} registered"}), 201
1615

17-
@app.route('/health', methods=['GET'])
16+
@flask_app.route('/health', methods=['GET'])
1817
def health():
19-
return "User service is Healthy", 200
18+
return "User service healthy", 200
19+
20+
# Dispatcher to map /user prefix
21+
app = DispatcherMiddleware(Flask('dummy_root'), {
22+
'/user': flask_app
23+
})

0 commit comments

Comments
 (0)