Skip to content

Commit 5fdb340

Browse files
authored
Merge pull request #17 from schoolofcode-me/added_user_resource
Added a user resource to show user info and to delete user by id.
2 parents b008758 + c15b25a commit 5fdb340

File tree

3 files changed

+29
-1
lines changed

3 files changed

+29
-1
lines changed

section11/app.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from flask_jwt_extended import JWTManager
44

55
from db import db
6-
from resources.user import UserRegister, UserLogin, TokenRefresh
6+
from resources.user import UserRegister, UserLogin, User, TokenRefresh
77
from resources.item import Item, ItemList
88
from resources.store import Store, StoreList
99

@@ -99,6 +99,7 @@ def create_tables():
9999
api.add_resource(ItemList, '/items')
100100
api.add_resource(UserRegister, '/register')
101101
api.add_resource(UserLogin, '/login')
102+
api.add_resource(User, '/user/<int:user_id>')
102103
api.add_resource(TokenRefresh, '/refresh')
103104

104105
if __name__ == '__main__':

section11/models/user.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@ def __init__(self, username, password):
1212
self.username = username
1313
self.password = password
1414

15+
def json(self):
16+
return {
17+
'id': self.id,
18+
'username': self.username
19+
}
20+
1521
def save_to_db(self):
1622
db.session.add(self)
1723
db.session.commit()

section11/resources/user.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,27 @@ def post(self):
5858
return {"message": "Invalid Credentials!"}, 401
5959

6060

61+
class User(Resource):
62+
"""
63+
This resource can be useful when testing our Flask app. We may not want to expose it to public users, but for the
64+
sake of demonstration in this course, it can be useful when we are manipulating data regarding the users.
65+
"""
66+
@classmethod
67+
def get(cls, user_id: int):
68+
user = UserModel.find_by_id(user_id)
69+
if not user:
70+
return {'message': 'User Not Found'}, 404
71+
return {'user': user.json()}, 200
72+
73+
@classmethod
74+
def delete(cls, user_id: int):
75+
user = UserModel.find_by_id(user_id)
76+
if not user:
77+
return {'message': 'User Not Found'}, 404
78+
user.delete_from_db()
79+
return {'message': 'User deleted.'}, 200
80+
81+
6182
class TokenRefresh(Resource):
6283
@jwt_refresh_token_required
6384
def post(self):

0 commit comments

Comments
 (0)