Skip to content

Commit dd2b22e

Browse files
committed
Make cancel order request
1 parent a45714f commit dd2b22e

File tree

2 files changed

+32
-8
lines changed

2 files changed

+32
-8
lines changed

main.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,14 +84,14 @@ def order():
8484
return make_response({"result": "success"}, 200)
8585

8686

87-
@app.route("/delete/<name>", methods=["POST"])
87+
@app.route("/cancel", methods=["POST"])
8888
def remove_pizza():
8989
data = request.json
90-
name = data["name"]
90+
order_id = data["order_id"]
9191
try:
92-
delete_pizza(name)
92+
cancel_order(order_id)
9393
except Exception as e:
94-
return make_response({"error": f"could not delete pizza {str(e)}"}, 400)
94+
return make_response({"error": f"could not cancel order {str(e)}"}, 400)
9595
return make_response({"result": "success"}, 200)
9696

9797

models/mysql_model.py

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
from datetime import date
1+
from datetime import datetime
2+
import time
23

34
from app import db
4-
from models.pizza import Pizza
55
from models.ingredient import Ingredient
6+
from models.pizza import Pizza
67
from models.dessert import Dessert
78
from models.drink import Drink
89
from models.menu_item import MenuItem
@@ -86,17 +87,40 @@ def show_ingredients(name):
8687

8788

8889
def save_new_order(address, customer_name, customer_number, order_items):
89-
order_time = date.today()
90+
order_time = datetime.today()
9091
new_order_items = []
9192
status = "Active"
9293
for item in order_items:
9394
new_order_items.append(OrderItem(menu_item=item['menu_item'], quantity=item['quantity']))
94-
new_order = Order(address=address, customer_name=customer_name, customer_number=customer_number, order_time=order_time, status=status, order_items=new_order_items)
95+
new_order = Order(address=address,
96+
customer_name=customer_name,
97+
customer_number=customer_number,
98+
order_time=order_time,
99+
status=status,
100+
order_items=new_order_items)
95101
db.session.add(new_order)
96102
db.session.commit()
97103
return new_order
98104

99105

106+
def find_order(order_id):
107+
order = Order.query.filter_by(id=order_id).first_or_404(description='There is no order with id {}'.format(order_id))
108+
return order
109+
110+
111+
def cancel_order(order_id):
112+
order = find_order(order_id)
113+
current_time = datetime.now()
114+
if order.status == "Cancelled":
115+
raise Exception("Order already cancelled.")
116+
if order.status == "Delivered":
117+
raise Exception("Order already delivered.")
118+
if ((current_time - order.order_time).seconds / 60) > 5:
119+
raise Exception("5 minutes have passed")
120+
order.status = "Cancelled"
121+
db.session.commit()
122+
123+
100124
# show_ingredients("Margherita")
101125
# delete_pizza("Margherita")
102126
db.create_all()

0 commit comments

Comments
 (0)