11import logging
2+ '''
3+ Failure messages
4+
5+ These functions provide for a standard return message for all known
6+ and expected error conditions.
7+
8+ The return payload is a JSON document and an HTTP error code. The JSON
9+ document includes these elements:
10+
11+ success - boolean
12+ message - a short message that uniquely identifies the error
13+ code - a distrinct return code that allows the client to act on
14+ then specic error condition encountered.
15+ field - optional data element that identified the name of the
16+ data element involved in the error.
17+ data - optional data element that provides an id or key value
18+ for the data set being processed when the error occurred.
19+
20+ The HTTP error code indicates whether the request succeeded or failed. If
21+ the call is successful, the service will return a code 200 and a message
22+ of "OK".
23+
24+ If the request is unsuccessful and the error is due to faulty client data,
25+ return an HTTP error code of 401 if the user is unknown or authentication fails.
26+ Return an HTTP 500 error if the failure is due to an issue within the server,
27+ such as unable to access the back-end database.
28+
29+ '''
230
331
432def unknown_user_id (id_user ):
533 logging .debug ('Failures: Unknown user id: %s' , id_user )
634 return {
7- 'success' : False ,
8- 'message' : 'Unknown user' ,
9- 'code' : 400 ,
10- 'data' : id_user
11- }, 500
35+ 'success' : False ,
36+ 'message' : 'Unknown user' ,
37+ 'code' : 400 ,
38+ 'data' : id_user
39+ }, 400
1240
1341
1442def unknown_user_email (email ):
1543 logging .debug ('Failures: Unknown user email: %s' , email )
1644 return {
17- 'success' : False ,
18- 'message' : 'Unknown user' ,
19- 'code' : 400 ,
20- 'data' : email
21- }, 500
45+ 'success' : False ,
46+ 'message' : 'Unknown user' ,
47+ 'code' : 400 ,
48+ 'data' : email
49+ }, 400
2250
2351
2452def unknown_user_screen_name (screen_name ):
2553 logging .debug ('Failures: Unknown user by screen name: %s' , screen_name )
2654 return {
27- 'success' : False ,
28- 'message' : 'Unknown user screen name' ,
29- 'code' : 400 ,
30- 'data' : screen_name
31- }, 500
55+ 'success' : False ,
56+ 'message' : 'Unknown user screen name' ,
57+ 'code' : 400 ,
58+ 'data' : screen_name
59+ }, 400
3260
3361
3462def email_already_in_use (email ):
3563 logging .debug ('Failures: Email already in use: %s' , email )
3664 return {
37- 'success' : False ,
38- 'message' : 'Email already in use' ,
39- 'code' : 450 ,
40- 'data' : email
41- }, 500
65+ 'success' : False ,
66+ 'message' : 'Email already in use' ,
67+ 'code' : 450 ,
68+ 'data' : email
69+ }, 400
4270
4371
4472def email_not_confirmed (email ):
4573 logging .debug ('Failures: Email %s not confirmed' , email )
4674 return {
47- 'success' : False ,
48- 'message' : 'Email not confirmed' ,
49- 'code' : 430
50- }, 401
75+ 'success' : False ,
76+ 'message' : 'Email not confirmed' ,
77+ 'code' : 430 ,
78+ 'data' : email
79+ }, 401
5180
5281
5382def user_blocked (email ):
5483 logging .debug ('Failures: User %s blocked' , email )
5584 return {
56- 'success' : False ,
57- 'message' : 'User is blocked' ,
58- 'code' : 420
59- }, 401
85+ 'success' : False ,
86+ 'message' : 'User is blocked' ,
87+ 'code' : 420 ,
88+ 'data' : email
89+ }, 403
6090
6191
6292def not_a_number (field , value ):
6393 logging .error ('Failures: Not a valid number: %s -> %s' , field , value )
6494 return {
65- 'success' : False ,
66- 'message' : 'Not a valid number' ,
67- 'code' : 310 ,
68- 'field' : field ,
69- 'value' : value
70- }, 400
95+ 'success' : False ,
96+ 'message' : 'Not a valid number' ,
97+ 'code' : 310 ,
98+ 'field' : field ,
99+ 'value' : value
100+ }, 400
71101
72102
73103def passwords_do_not_match ():
74104 logging .debug ('Failures: Passwords do not match' )
75105 return {
76- 'success' : False ,
77- 'message' : "Password confirm doesn't match" ,
78- 'code' : 460
79- }, 500
106+ 'success' : False ,
107+ 'message' : "Password confirm doesn't match" ,
108+ 'code' : 460
109+ }, 400
80110
81111
82112def password_complexity ():
83113 logging .debug ('Failures: Password is not complex enough' )
84114 return {
85- 'success' : False ,
86- 'message' : "Password is not complex enough" ,
87- 'code' : 490
88- }, 500
115+ 'success' : False ,
116+ 'message' : "Password is not complex enough" ,
117+ 'code' : 490
118+ }, 400
89119
90120
91121def screen_name_already_in_use (screen_name ):
92122 logging .debug ('Failures: Screen name already in use: %s' , screen_name )
93123 return {
94- 'success' : False ,
95- 'message' : "Screenname already in use" ,
96- 'data ' : screen_name ,
97- 'code ' : 500
98- }, 500
124+ 'success' : False ,
125+ 'message' : "Screenname already in use" ,
126+ 'code ' : 500 ,
127+ 'data ' : screen_name
128+ }, 400
99129
100130
101131def rate_exceeded (time ):
@@ -106,37 +136,38 @@ def rate_exceeded(time):
106136 """
107137 logging .debug ('Failures: Rate exceeded' )
108138 return {
109- 'success' : False ,
110- 'message' : 'Insufficient bucket tokens' ,
111- 'data ' : time ,
112- 'code ' : 470
113- }, 500
139+ 'success' : False ,
140+ 'message' : 'Insufficient bucket tokens' ,
141+ 'code ' : 470 ,
142+ 'data ' : time
143+ }, 400
114144
115145
116146def wrong_password (email ):
117147 logging .debug ('Failures: Wrong password for %s' , email )
118148 return {
119- 'success' : False ,
120- 'message' : 'Wrong password' ,
121- 'code' : 410
149+ 'success' : False ,
150+ 'message' : 'Wrong password' ,
151+ 'code' : 410 ,
152+ 'data' : email
122153 }, 401
123154
124155
125156def unknown_bucket_type (bucket_type ):
126157 logging .debug ('Failures: Unknown bucket type: %s' , bucket_type )
127158 return {
128- 'success' : False ,
129- 'message' : 'Unknown bucket type' ,
130- 'code' : 180 ,
131- 'data' : bucket_type
132- }, 500
159+ 'success' : False ,
160+ 'message' : 'Unknown bucket type' ,
161+ 'code' : 180 ,
162+ 'data' : bucket_type
163+ }, 400
133164
134165
135166def wrong_auth_source (auth_source ):
136167 logging .debug ('Failures: Wrong auth source: %s' , auth_source )
137168 return {
138- 'success' : False ,
139- 'message' : 'Wrong auth source' ,
140- 'code' : 480 ,
141- 'data' : auth_source
142- }, 500
169+ 'success' : False ,
170+ 'message' : 'Wrong auth source' ,
171+ 'code' : 480 ,
172+ 'data' : auth_source
173+ }, 500
0 commit comments