Skip to content

Commit 90b3de7

Browse files
authored
Merge pull request #19 from schoolofcode-me/fix-UserModel-does-not-have-delete-method
Fix user model does not have delete method
2 parents b14d593 + d397a54 commit 90b3de7

File tree

3 files changed

+117
-26
lines changed

3 files changed

+117
-26
lines changed

section11/Flask-JWT-Extended.postman_collection.json

Lines changed: 108 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -36,28 +36,74 @@
3636
},
3737
"response": []
3838
},
39+
{
40+
"name": "get user by id",
41+
"request": {
42+
"method": "GET",
43+
"header": [],
44+
"body": {
45+
"mode": "raw",
46+
"raw": "{\n\t\"username\": \"jose\",\n\t\"password\": \"1234\"\n}"
47+
},
48+
"url": {
49+
"raw": "{{server_address}}/user/1",
50+
"host": [
51+
"{{server_address}}"
52+
],
53+
"path": [
54+
"user",
55+
"1"
56+
]
57+
}
58+
},
59+
"response": []
60+
},
61+
{
62+
"name": "delete user by id",
63+
"request": {
64+
"method": "DELETE",
65+
"header": [],
66+
"body": {
67+
"mode": "raw",
68+
"raw": "{\n\t\"username\": \"jose\",\n\t\"password\": \"1234\"\n}"
69+
},
70+
"url": {
71+
"raw": "{{server_address}}/user/2",
72+
"host": [
73+
"{{server_address}}"
74+
],
75+
"path": [
76+
"user",
77+
"2"
78+
]
79+
}
80+
},
81+
"response": []
82+
},
3983
{
4084
"name": "login",
4185
"event": [
4286
{
4387
"listen": "test",
4488
"script": {
45-
"id": "d73931b5-5e53-4efd-b3f1-06219fd5c88d",
89+
"id": "8c0c0ed6-c206-4c88-9349-429e024e312b",
4690
"type": "text/javascript",
4791
"exec": [
48-
"var jsonData = JSON.parse(responseBody);",
49-
"tests[\"jwt_token not empty\"] = jsonData.access_token !== undefined;",
50-
"if (jsonData.access_token !== undefined) {",
51-
" postman.setEnvironmentVariable(\"jwt_token\", jsonData.access_token);",
52-
"} else {",
53-
" postman.setEnvironmentVariable(\"jwt_token\", null);",
54-
"}",
55-
"",
56-
"pm.test(\"jwt_token not empty 2\", function () {",
57-
" var jsonData = pm.response.json();",
92+
"var jsonData = pm.response.json();",
93+
"pm.test(\"access_token not empty\", function () {",
5894
" pm.expect(jsonData.access_token).not.eql(undefined);",
5995
"});",
6096
"",
97+
"pm.test(\"refresh token not empty\", function () {",
98+
" pm.expect(jsonData.refresh_token).not.eql(undefined);",
99+
"});",
100+
"// set access token as environement variable",
101+
"if (jsonData.access_token !== undefined) {",
102+
" postman.setEnvironmentVariable(\"access_token\", jsonData.access_token);",
103+
"} else {",
104+
" postman.setEnvironmentVariable(\"access_token\", null);",
105+
"}",
106+
"// set refresh token as environement variable",
61107
"if (jsonData.refresh_token !== undefined) {",
62108
" postman.setEnvironmentVariable(\"refresh_token\", jsonData.refresh_token);",
63109
"} else {",
@@ -91,21 +137,62 @@
91137
},
92138
"response": []
93139
},
140+
{
141+
"name": "logout",
142+
"event": [
143+
{
144+
"listen": "test",
145+
"script": {
146+
"id": "dc763e9b-e6c7-4ff3-9766-637976a5c64b",
147+
"type": "text/javascript",
148+
"exec": [
149+
""
150+
]
151+
}
152+
}
153+
],
154+
"request": {
155+
"method": "POST",
156+
"header": [
157+
{
158+
"key": "Authorization",
159+
"value": "Bearer {{access_token}}"
160+
}
161+
],
162+
"body": {
163+
"mode": "raw",
164+
"raw": ""
165+
},
166+
"url": {
167+
"raw": "{{server_address}}/logout",
168+
"host": [
169+
"{{server_address}}"
170+
],
171+
"path": [
172+
"logout"
173+
]
174+
}
175+
},
176+
"response": []
177+
},
94178
{
95179
"name": "refresh token",
96180
"event": [
97181
{
98182
"listen": "test",
99183
"script": {
100-
"id": "a4c2fd32-e292-4490-b4b6-d01f15be0925",
184+
"id": "ad818ea6-8f79-436e-b756-ad878666ae9e",
101185
"type": "text/javascript",
102186
"exec": [
103-
"var jsonData = JSON.parse(responseBody);",
104-
"tests[\"jwt_token not empty\"] = jsonData.access_token !== undefined;",
187+
"var jsonData = pm.response.json();",
188+
"pm.test(\"access_token not empty\", function () {",
189+
" pm.expect(jsonData.access_token).not.eql(undefined);",
190+
"});",
191+
"// set access token as environement variable",
105192
"if (jsonData.access_token !== undefined) {",
106-
" postman.setEnvironmentVariable(\"jwt_token\", jsonData.access_token);",
193+
" postman.setEnvironmentVariable(\"access_token\", jsonData.access_token);",
107194
"} else {",
108-
" postman.setEnvironmentVariable(\"jwt_token\", null);",
195+
" postman.setEnvironmentVariable(\"access_token\", null);",
109196
"}"
110197
]
111198
}
@@ -152,7 +239,7 @@
152239
"header": [
153240
{
154241
"key": "Authorization",
155-
"value": "Bearer {{jwt_token}}"
242+
"value": "Bearer {{access_token}}"
156243
}
157244
],
158245
"body": {},
@@ -176,7 +263,7 @@
176263
"header": [
177264
{
178265
"key": "Authorization",
179-
"value": "Bearer {{jwt_token}}"
266+
"value": "Bearer {{access_token}}"
180267
},
181268
{
182269
"key": "Content-Type",
@@ -207,7 +294,7 @@
207294
"header": [
208295
{
209296
"key": "Authorization",
210-
"value": "Bearer {{jwt_token}}"
297+
"value": "Bearer {{access_token}}"
211298
},
212299
{
213300
"key": "Content-Type",
@@ -238,7 +325,7 @@
238325
"header": [
239326
{
240327
"key": "Authorization",
241-
"value": "Bearer {{jwt_token}}"
328+
"value": "Bearer {{access_token}}"
242329
},
243330
{
244331
"key": "Content-Type",
@@ -269,7 +356,7 @@
269356
"header": [
270357
{
271358
"key": "Authorization",
272-
"value": "Bearer {{jwt_token}}"
359+
"value": "Bearer {{access_token}}"
273360
}
274361
],
275362
"body": {

section11/models/user.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,18 @@ def json(self):
1818
'username': self.username
1919
}
2020

21-
def save_to_db(self):
22-
db.session.add(self)
23-
db.session.commit()
24-
2521
@classmethod
2622
def find_by_username(cls, username):
2723
return cls.query.filter_by(username=username).first()
2824

2925
@classmethod
3026
def find_by_id(cls, _id):
3127
return cls.query.filter_by(id=_id).first()
28+
29+
def save_to_db(self):
30+
db.session.add(self)
31+
db.session.commit()
32+
33+
def delete_from_db(self):
34+
db.session.delete(self)
35+
db.session.commit()

section11/resources/user.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def get(cls, user_id: int):
7272
user = UserModel.find_by_id(user_id)
7373
if not user:
7474
return {'message': 'User Not Found'}, 404
75-
return {'user': user.json()}, 200
75+
return user.json(), 200
7676

7777
@classmethod
7878
def delete(cls, user_id: int):

0 commit comments

Comments
 (0)