Skip to content

Commit 4f3be04

Browse files
committed
Revert "Updated code to match ebook's code"
This reverts commit a7ee506.
1 parent 479dea0 commit 4f3be04

File tree

2 files changed

+86
-80
lines changed
  • project

2 files changed

+86
-80
lines changed

project/01-first-rest-api/app.py

Lines changed: 43 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,57 @@
1+
import uuid
12
from flask import Flask, request
23

34
app = Flask(__name__)
45

5-
stores = [
6-
{
7-
"name": "My Store",
8-
"items": [
9-
{
10-
"name": "Chair",
11-
"price": 15.99
12-
}
13-
]
6+
stores = {}
7+
items = {}
8+
9+
10+
@app.get("/item/<string:id>")
11+
def get_item(id):
12+
try:
13+
return items[id]
14+
except KeyError:
15+
return {"message": "Item not found"}, 404
16+
17+
18+
@app.post("/item")
19+
def create_item():
20+
request_data = request.get_json()
21+
new_item_id = uuid.uuid4().hex
22+
new_item = {
23+
"name": request_data["name"],
24+
"price": request_data["price"],
25+
"store_id": request_data["store_id"],
1426
}
15-
]
27+
items[new_item_id] = new_item
28+
return new_item
1629

17-
@app.get("/store")
18-
def get_stores():
19-
return {"stores": stores}
30+
31+
@app.get("/item")
32+
def get_all_items():
33+
return {"items": list(items.values())}
34+
35+
36+
@app.get("/store/<string:id>")
37+
def get_store(id):
38+
try:
39+
# Here you might also want to add the items in this store
40+
# We'll do that later on in the course
41+
return stores[id]
42+
except KeyError:
43+
return {"message": "Store not found"}, 404
2044

2145

2246
@app.post("/store")
2347
def create_store():
2448
request_data = request.get_json()
25-
new_store = {"name": request_data["name"], "items": []}
26-
stores.append(new_store)
49+
new_store_id = uuid.uuid4().hex
50+
new_store = {"id": new_store_id, "name": request_data["name"]}
51+
stores[new_store_id] = new_store
2752
return new_store, 201
2853

2954

30-
@app.post("/store/<string:name>/item")
31-
def create_item(name):
32-
request_data = request.get_json()
33-
for store in stores:
34-
if store["name"] == name:
35-
new_item = {"name": request_data["name"], "price": request_data["price"]}
36-
store["items"].append(new_item)
37-
return new_item, 201
38-
return {"message": "Store not found"}, 404
39-
40-
41-
@app.get("/store/<string:name>")
42-
def get_store(name):
43-
for store in stores:
44-
if store["name"] == name:
45-
return store
46-
return {"message": "Store not found"}, 404
47-
48-
49-
@app.get("/store/<string:name>/item")
50-
def get_item_in_store(name):
51-
for store in stores:
52-
if store["name"] == name:
53-
return {"items": store["items"]}
54-
return {"message": "Store not found"}, 404
55+
@app.get("/store")
56+
def get_stores():
57+
return {"stores": list(stores.values())}
Lines changed: 43 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,57 @@
1+
import uuid
12
from flask import Flask, request
23

34
app = Flask(__name__)
45

5-
stores = [
6-
{
7-
"name": "My Store",
8-
"items": [
9-
{
10-
"name": "Chair",
11-
"price": 15.99
12-
}
13-
]
6+
stores = {}
7+
items = {}
8+
9+
10+
@app.get("/item/<string:id>")
11+
def get_item(id):
12+
try:
13+
return items[id]
14+
except KeyError:
15+
return {"message": "Item not found"}, 404
16+
17+
18+
@app.post("/item")
19+
def create_item():
20+
request_data = request.get_json()
21+
new_item_id = uuid.uuid4().hex
22+
new_item = {
23+
"name": request_data["name"],
24+
"price": request_data["price"],
25+
"store_id": request_data["store_id"],
1426
}
15-
]
27+
items[new_item_id] = new_item
28+
return new_item
1629

17-
@app.get("/store")
18-
def get_stores():
19-
return {"stores": stores}
30+
31+
@app.get("/item")
32+
def get_all_items():
33+
return {"items": list(items.values())}
34+
35+
36+
@app.get("/store/<string:id>")
37+
def get_store(id):
38+
try:
39+
# Here you might also want to add the items in this store
40+
# We'll do that later on in the course
41+
return stores[id]
42+
except KeyError:
43+
return {"message": "Store not found"}, 404
2044

2145

2246
@app.post("/store")
2347
def create_store():
2448
request_data = request.get_json()
25-
new_store = {"name": request_data["name"], "items": []}
26-
stores.append(new_store)
49+
new_store_id = uuid.uuid4().hex
50+
new_store = {"id": new_store_id, "name": request_data["name"]}
51+
stores[new_store_id] = new_store
2752
return new_store, 201
2853

2954

30-
@app.post("/store/<string:name>/item")
31-
def create_item(name):
32-
request_data = request.get_json()
33-
for store in stores:
34-
if store["name"] == name:
35-
new_item = {"name": request_data["name"], "price": request_data["price"]}
36-
store["items"].append(new_item)
37-
return new_item, 201
38-
return {"message": "Store not found"}, 404
39-
40-
41-
@app.get("/store/<string:name>")
42-
def get_store(name):
43-
for store in stores:
44-
if store["name"] == name:
45-
return store
46-
return {"message": "Store not found"}, 404
47-
48-
49-
@app.get("/store/<string:name>/item")
50-
def get_item_in_store(name):
51-
for store in stores:
52-
if store["name"] == name:
53-
return {"items": store["items"]}
54-
return {"message": "Store not found"}, 404
55+
@app.get("/store")
56+
def get_stores():
57+
return {"stores": list(stores.values())}

0 commit comments

Comments
 (0)