|  | @@ -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(
 |