@@ -26,25 +26,24 @@ def _get_token(headers: dict):
26
26
return headers .get (keyName )
27
27
28
28
29
- def process_header (headers , body : dict ) -> ( dict , bool ):
29
+ def process_header (headers ):
30
30
token = _get_token (headers )
31
- if not token and not (body and "user_id" in body ):
32
- return body , False
33
- newBody = body .copy () if body else {}
31
+ if not token :
32
+ return {"message" :
33
+ "no token provided" ,
34
+ "status" : http .client .UNAUTHORIZED }
34
35
try :
35
- processToken = jwt .decode (token , key = os .getenv ("HASH_SECRET" ),
36
- algorithms = [os .getenv ("HASH_ALGORITHM" ), ])
37
- newBody ["user_id" ] = processToken .get ("id" , "" )
38
- newBody ["email" ] = processToken .get ("email" )
36
+ jwt .decode (token , os .getenv ("JWT_SECRET" ),
37
+ algorithms = [os .getenv ("HASH_ALGORITHM" ), ])
39
38
except jwt .ExpiredSignatureError :
40
39
return {"message" :
41
40
"expired token" ,
42
- "status" : http .client .UNAUTHORIZED }, True
41
+ "status" : http .client .UNAUTHORIZED }
43
42
except jwt .InvalidTokenError :
44
43
return {"message" :
45
44
"invalid token" ,
46
- "status" : http .client .FORBIDDEN }, True
47
- return newBody , False
45
+ "status" : http .client .FORBIDDEN }
46
+ return None
48
47
49
48
50
49
class Users :
@@ -59,16 +58,24 @@ def getResponseJson(self, response):
59
58
60
59
def get (self , url , body , headers , query_params ):
61
60
url = f"{ self .host } { url } { get_query_params (query_params )} "
61
+ token_error_response = process_header (headers )
62
+ if token_error_response :
63
+ return make_response (token_error_response ,
64
+ token_error_response .get ("status" ))
62
65
response = requests .get (url , json = body , headers = headers )
66
+ headers = dict (response .headers )
63
67
logging .info (f"USERS | GET | { url } " )
64
- return make_response (self .getResponseJson (response ),
65
- response .status_code )
68
+ response = make_response (self .getResponseJson (response ),
69
+ response .status_code )
70
+ response .headers [TOKEN_FIELD_NAME ] = headers .get (TOKEN_FIELD_NAME )
71
+ return response
66
72
67
73
def post (self , url , body , headers , query_params ):
68
- # if not (url.startswith("login")):
69
- # body, error = process_header(headers, body)
70
- # if error:
71
- # return make_response(body, body.get("status"))
74
+ if not (url .startswith ("login" )):
75
+ token_error_response = process_header (headers )
76
+ if token_error_response :
77
+ return make_response (token_error_response ,
78
+ token_error_response .get ("status" ))
72
79
response = requests .post (f"{ self .host } { url } "
73
80
f"{ get_query_params (query_params )} " ,
74
81
json = body ,
@@ -83,19 +90,30 @@ def post(self, url, body, headers, query_params):
83
90
return response
84
91
85
92
def patch (self , url , body , headers , query_params ):
86
- response = requests .patch (f"{ self .host } { url } "
87
- f"{ get_query_params (query_params )} " ,
88
- json = body ,
89
- headers = headers )
93
+ url = f"{ self .host } { url } { get_query_params (query_params )} "
94
+ token_error_response = process_header (headers )
95
+ if token_error_response :
96
+ return make_response (token_error_response ,
97
+ token_error_response .get ("status" ))
98
+ response = requests .patch (url , json = body , headers = headers )
90
99
logging .info (f"USERS | PATCH | { url } " )
91
100
logging .debug (f"BODY: { body } " )
92
- return make_response (self .getResponseJson (response ),
93
- response .status_code )
101
+ headers = dict (response .headers )
102
+ response = make_response (self .getResponseJson (response ),
103
+ response .status_code )
104
+ response .headers [TOKEN_FIELD_NAME ] = headers .get (TOKEN_FIELD_NAME )
105
+ return response
94
106
95
107
def delete (self , url , body , headers , query_params ):
96
- response = requests .delete (f"{ self .host } { url } "
97
- f"{ get_query_params (query_params )} " ,
98
- headers = headers )
108
+ token_error_response = process_header (headers )
109
+ if token_error_response :
110
+ return make_response (token_error_response ,
111
+ token_error_response .get ("status" ))
112
+ url = f"{ self .host } { url } { get_query_params (query_params )} "
113
+ response = requests .delete (url , headers = headers )
99
114
logging .info (f"USERS | DELETE | { url } " )
100
- return make_response (self .getResponseJson (response ),
101
- response .status_code )
115
+ headers = dict (response .headers )
116
+ response = make_response (self .getResponseJson (response ),
117
+ response .status_code )
118
+ response .headers [TOKEN_FIELD_NAME ] = headers .get (TOKEN_FIELD_NAME )
119
+ return response
0 commit comments