8000 Add starter code to section 5. · SWCodeG/testing-python-apps@73be874 · GitHub
[go: up one dir, main page]

Skip to content

Commit 73be874

Browse files
committed
Add starter code to section 5.
1 parent 6bf8caf commit 73be874

File tree

3 files changed

+59
-0
lines changed

3 files changed

+59
-0
lines changed

section3_starter_source_code.zip

-6.23 KB
Binary file not shown.

section5/starter_code/resources/__init__.py

Whitespace-only changes.
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
from flask_restful import Resource, reqparse
2+
from flask_jwt import jwt_required
3+
from models.item import ItemModel
4+
5+
6+
class Item(Resource):
7+
parser = reqparse.RequestParser()
8+
parser.add_argument('price',
9+
type=float,
10+
required=True,
11+
help="This field cannot be left blank!")
12+
13+
@jwt_required()
14+
def get(self, name):
15+
item = ItemModel.find_by_name(name)
16+
if item:
17+
return item.json()
18+
return {'message': 'Item not found'}, 404
19+
20+
def post(self, name):
21+
if ItemModel.find_by_name(name):
22+
return {'message': "An item with name '{}' already exists.".format(name)}, 400
23+
24+
data = Item.parser.parse_args()
25+
26+
item = ItemModel(name, **data)
27+
28+
try:
29+
item.save_to_db()
30+
except:
31+
return {"message": "An error occurred inserting the item."}, 500
32+
33+
return item.json(), 201
34+
35+
def delete(self, name):
36+
item = ItemModel.find_by_name(name)
37+
if item:
38+
item.delete_from_db()
39+
40+
return {'message': 'Item deleted'}
41+
42+
def put(self, name):
43+
data = Item.parser.parse_args()
44+
45+
item = ItemModel.find_by_name(name)
46+
47+
if item is None:
48+
item = ItemModel(name, **data)
49+
else:
50+
item.price = data['price']
51+
52+
item.save_to_db()
53+
54+
return item.json()
55+
56+
57+
class ItemList(Resource):
58+
def get(self):
59+
return {'items': [x.json() for x in ItemModel.query.all()]}

0 commit comments

Comments
 (0)
0