Skip to content

Commit 05a5348

Browse files
committed
Add customer and address table, changed order to work with new tables
1 parent 0234309 commit 05a5348

File tree

5 files changed

+56
-11
lines changed

5 files changed

+56
-11
lines changed

main.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,13 +85,11 @@ def create_dessert():
8585
@app.route("/order", methods=["POST"])
8686
def order():
8787
data = request.json
88-
address = data["address"]
89-
customer_name = data["customer_name"]
90-
customer_number = data["customer_number"]
88+
customer = data["customer"]
9189
order_items = data["order_items"]
9290

9391
try:
94-
save_new_order(address, customer_name, customer_number, order_items)
92+
save_new_order(customer, order_items)
9593
except Exception as e:
9694
return make_response({"error": f"could not order: {str(e)}"}, 400)
9795
return make_response({"result": "success"}, 200)

models/address.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
from app import db
2+
3+
4+
class Address(db.Model):
5+
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
6+
street = db.Column(db.String(80), nullable=False)
7+
house_number = db.Column(db.Integer, nullable=False)
8+
zip_code = db.Column(db.String(80), nullable=False)
9+
area = db.Column(db.String(80), nullable=False)

models/customer.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from app import db
2+
3+
4+
class Customer(db.Model):
5+
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
6+
first_name = db.Column(db.String(80), nullable=False)
7+
last_name = db.Column(db.String(80), nullable=False)
8+
phone_number = db.Column(db.String(80), nullable=False)
9+
address_id = db.Column(db.Integer, db.ForeignKey('address.id'))
10+
orders = db.relationship("Order", backref='customer')

models/mysql_model.py

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
from models.drink import Drink
1111
from models.menu_item import MenuItem
1212
from models.driver import Driver
13+
from models.address import Address
14+
from models.customer import Customer
1315
from models.order import Order
1416
from models.order_item import OrderItem
1517

@@ -92,18 +94,46 @@ def show_ingredients(name):
9294
print(ingredient)
9395

9496

95-
def save_new_order(address, customer_name, customer_number, order_items):
97+
def save_new_order(customer, order_items):
9698
order_time = datetime.today()
9799
new_order_items = []
98100
status = "In Process"
99101
driver = get_first_available_driver()
100102
driver_id = driver.id
101103
driver.available = False
104+
address = customer["address"]
105+
address_found = Address.query.filter_by(street=address["street"],
106+
house_number=address["house_number"],
107+
zip_code=address["zip_code"],
108+
area=address["area"]).first()
109+
if address_found:
110+
new_address = address_found
111+
else:
112+
new_address = Address(street=address["street"],
113+
house_number=address["house_number"],
114+
zip_code=address["zip_code"],
115+
area=address["area"])
116+
db.session.add(new_address)
117+
db.session.commit()
118+
119+
address_id = new_address.id
120+
customer_found = Customer.query.filter_by(first_name=customer["first_name"],
121+
last_name=customer["last_name"],
122+
phone_number=customer["phone_number"],
123+
address_id=address_id).first()
124+
if customer_found:
125+
new_customer = customer_found
126+
else:
127+
new_customer = Customer(first_name=customer["first_name"],
128+
last_name=customer["last_name"],
129+
phone_number=customer["phone_number"],
130+
address_id=address_id)
131+
db.session.add(new_customer)
132+
db.session.commit()
133+
customer_id = new_customer.id
102134
for item in order_items:
103135
new_order_items.append(OrderItem(menu_item=item['menu_item'], quantity=item['quantity']))
104-
new_order = Order(address=address,
105-
customer_name=customer_name,
106-
customer_number=customer_number,
136+
new_order = Order(customer_id=customer_id,
107137
order_time=order_time,
108138
status=status,
109139
driver_id=driver_id,

models/order.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33

44
class Order(db.Model):
55
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
6-
address = db.Column(db.String(80), nullable=False)
7-
customer_name = db.Column(db.String(120), nullable=False)
8-
customer_number = db.Column(db.String(80), nullable=False)
6+
customer_id = db.Column(db.Integer, db.ForeignKey('customer.id'))
97
status = db.Column(db.String(80), nullable=False)
108
order_time = db.Column(db.DateTime, nullable=False)
119
driver_id = db.Column(db.Integer, db.ForeignKey("driver.id"), nullable=False)

0 commit comments

Comments
 (0)