|
@@ -2,7 +2,12 @@
|
2
|
2
|
from pyramid.request import Request
|
3
|
3
|
from sqlalchemy.orm.exc import NoResultFound
|
4
|
4
|
|
5
|
|
-from tracim.exceptions import NotAuthenticated, ContentNotFound
|
|
5
|
+from tracim.exceptions import NotAuthenticated
|
|
6
|
+from tracim.exceptions import ContentNotFound
|
|
7
|
+from tracim.exceptions import InvalidUserId
|
|
8
|
+from tracim.exceptions import InvalidWorkspaceId
|
|
9
|
+from tracim.exceptions import InvalidContentId
|
|
10
|
+from tracim.exceptions import InvalidCommentId
|
6
|
11
|
from tracim.exceptions import ContentNotFoundInTracimRequest
|
7
|
12
|
from tracim.exceptions import WorkspaceNotFoundInTracimRequest
|
8
|
13
|
from tracim.exceptions import UserNotFoundInTracimRequest
|
|
@@ -214,8 +219,9 @@ class TracimRequest(Request):
|
214
|
219
|
comment_id = ''
|
215
|
220
|
try:
|
216
|
221
|
if 'comment_id' in request.matchdict:
|
217
|
|
- if not request.matchdict['comment_id'].isdecimal():
|
218
|
|
- raise ContentNotFoundInTracimRequest('comment_id is not a correct integer') # nopep8
|
|
222
|
+ comment_id_str = request.matchdict['content_id']
|
|
223
|
+ if not isinstance(comment_id_str, str) or not comment_id_str.isdecimal(): # nopep8
|
|
224
|
+ raise InvalidCommentId('comment_id is not a correct integer') # nopep8
|
219
|
225
|
comment_id = int(request.matchdict['comment_id'])
|
220
|
226
|
if not comment_id:
|
221
|
227
|
raise ContentNotFoundInTracimRequest('No comment_id property found in request') # nopep8
|
|
@@ -253,8 +259,9 @@ class TracimRequest(Request):
|
253
|
259
|
content_id = ''
|
254
|
260
|
try:
|
255
|
261
|
if 'content_id' in request.matchdict:
|
256
|
|
- if not request.matchdict['content_id'].isdecimal():
|
257
|
|
- raise ContentNotFoundInTracimRequest('content_id is not a correct integer') # nopep8
|
|
262
|
+ content_id_str = request.matchdict['content_id']
|
|
263
|
+ if not isinstance(content_id_str, str) or not content_id_str.isdecimal(): # nopep8
|
|
264
|
+ raise InvalidContentId('content_id is not a correct integer') # nopep8
|
258
|
265
|
content_id = int(request.matchdict['content_id'])
|
259
|
266
|
if not content_id:
|
260
|
267
|
raise ContentNotFoundInTracimRequest('No content_id property found in request') # nopep8
|
|
@@ -286,8 +293,9 @@ class TracimRequest(Request):
|
286
|
293
|
try:
|
287
|
294
|
login = None
|
288
|
295
|
if 'user_id' in request.matchdict:
|
289
|
|
- if not request.matchdict['user_id'].isdecimal():
|
290
|
|
- raise UserNotFoundInTracimRequest('user_id is not a correct integer') # nopep8
|
|
296
|
+ user_id_str = request.matchdict['user_id']
|
|
297
|
+ if not isinstance(user_id_str, str) or not user_id_str.isdecimal():
|
|
298
|
+ raise InvalidUserId('user_id is not a correct integer') # nopep8
|
291
|
299
|
login = int(request.matchdict['user_id'])
|
292
|
300
|
if not login:
|
293
|
301
|
raise UserNotFoundInTracimRequest('You request a candidate user but the context not permit to found one') # nopep8
|
|
@@ -331,8 +339,9 @@ class TracimRequest(Request):
|
331
|
339
|
workspace_id = ''
|
332
|
340
|
try:
|
333
|
341
|
if 'workspace_id' in request.matchdict:
|
334
|
|
- if not request.matchdict['workspace_id'].isdecimal():
|
335
|
|
- raise WorkspaceNotFoundInTracimRequest('workspace_id is not a correct integer') # nopep8
|
|
342
|
+ workspace_id_str = request.matchdict['workspace_id']
|
|
343
|
+ if not isinstance(workspace_id_str, str) or not workspace_id_str.isdecimal(): # nopep8
|
|
344
|
+ raise InvalidWorkspaceId('workspace_id is not a correct integer') # nopep8
|
336
|
345
|
workspace_id = int(request.matchdict['workspace_id'])
|
337
|
346
|
if not workspace_id:
|
338
|
347
|
raise WorkspaceNotFoundInTracimRequest('No workspace_id property found in request') # nopep8
|
|
@@ -368,7 +377,7 @@ class TracimRequest(Request):
|
368
|
377
|
if workspace_id.isdecimal():
|
369
|
378
|
workspace_id = int(workspace_id)
|
370
|
379
|
else:
|
371
|
|
- raise WorkspaceNotFoundInTracimRequest('workspace_id is not a correct integer') # nopep8
|
|
380
|
+ raise InvalidWorkspaceId('workspace_id is not a correct integer') # nopep8
|
372
|
381
|
if not workspace_id:
|
373
|
382
|
raise WorkspaceNotFoundInTracimRequest('No new_workspace_id property found in body') # nopep8
|
374
|
383
|
wapi = WorkspaceApi(
|