|  | @@ -214,6 +214,8 @@ class TracimRequest(Request):
 | 
	
		
			
			| 214 | 214 |          comment_id = ''
 | 
	
		
			
			| 215 | 215 |          try:
 | 
	
		
			
			| 216 | 216 |              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
 | 
	
		
			
			| 217 | 219 |                  comment_id = int(request.matchdict['comment_id'])
 | 
	
		
			
			| 218 | 220 |              if not comment_id:
 | 
	
		
			
			| 219 | 221 |                  raise ContentNotFoundInTracimRequest('No comment_id property found in request')  # nopep8
 | 
	
	
		
			
			|  | @@ -228,8 +230,6 @@ class TracimRequest(Request):
 | 
	
		
			
			| 228 | 230 |                  workspace=workspace,
 | 
	
		
			
			| 229 | 231 |                  parent=content,
 | 
	
		
			
			| 230 | 232 |              )
 | 
	
		
			
			| 231 |  | -        except JSONDecodeError as exc:
 | 
	
		
			
			| 232 |  | -            raise ContentNotFound('Invalid JSON content') from exc
 | 
	
		
			
			| 233 | 233 |          except NoResultFound as exc:
 | 
	
		
			
			| 234 | 234 |              raise ContentNotFound(
 | 
	
		
			
			| 235 | 235 |                  'Comment {} does not exist '
 | 
	
	
		
			
			|  | @@ -253,6 +253,8 @@ class TracimRequest(Request):
 | 
	
		
			
			| 253 | 253 |          content_id = ''
 | 
	
		
			
			| 254 | 254 |          try:
 | 
	
		
			
			| 255 | 255 |              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
 | 
	
		
			
			| 256 | 258 |                  content_id = int(request.matchdict['content_id'])
 | 
	
		
			
			| 257 | 259 |              if not content_id:
 | 
	
		
			
			| 258 | 260 |                  raise ContentNotFoundInTracimRequest('No content_id property found in request')  # nopep8
 | 
	
	
		
			
			|  | @@ -262,8 +264,6 @@ class TracimRequest(Request):
 | 
	
		
			
			| 262 | 264 |                  config=request.registry.settings['CFG']
 | 
	
		
			
			| 263 | 265 |              )
 | 
	
		
			
			| 264 | 266 |              content = api.get_one(content_id=content_id, workspace=workspace, content_type=ContentType.Any)  # nopep8
 | 
	
		
			
			| 265 |  | -        except JSONDecodeError as exc:
 | 
	
		
			
			| 266 |  | -            raise ContentNotFound('Invalid JSON content') from exc
 | 
	
		
			
			| 267 | 267 |          except NoResultFound as exc:
 | 
	
		
			
			| 268 | 268 |              raise ContentNotFound(
 | 
	
		
			
			| 269 | 269 |                  'Content {} does not exist '
 | 
	
	
		
			
			|  | @@ -286,7 +286,9 @@ class TracimRequest(Request):
 | 
	
		
			
			| 286 | 286 |          try:
 | 
	
		
			
			| 287 | 287 |              login = None
 | 
	
		
			
			| 288 | 288 |              if 'user_id' in request.matchdict:
 | 
	
		
			
			| 289 |  | -                login = request.matchdict['user_id']
 | 
	
		
			
			|  | 289 | +                if not request.matchdict['user_id'].isdecimal():
 | 
	
		
			
			|  | 290 | +                    raise UserNotFoundInTracimRequest('user_id is not a correct integer')  # nopep8
 | 
	
		
			
			|  | 291 | +                login = int(request.matchdict['user_id'])
 | 
	
		
			
			| 290 | 292 |              if not login:
 | 
	
		
			
			| 291 | 293 |                  raise UserNotFoundInTracimRequest('You request a candidate user but the context not permit to found one')  # nopep8
 | 
	
		
			
			| 292 | 294 |              user = uapi.get_one(login)
 | 
	
	
		
			
			|  | @@ -329,7 +331,9 @@ class TracimRequest(Request):
 | 
	
		
			
			| 329 | 331 |          workspace_id = ''
 | 
	
		
			
			| 330 | 332 |          try:
 | 
	
		
			
			| 331 | 333 |              if 'workspace_id' in request.matchdict:
 | 
	
		
			
			| 332 |  | -                workspace_id = request.matchdict['workspace_id']
 | 
	
		
			
			|  | 334 | +                if not request.matchdict['workspace_id'].isdecimal():
 | 
	
		
			
			|  | 335 | +                    raise WorkspaceNotFoundInTracimRequest('workspace_id is not a correct integer')  # nopep8
 | 
	
		
			
			|  | 336 | +                workspace_id = int(request.matchdict['workspace_id'])
 | 
	
		
			
			| 333 | 337 |              if not workspace_id:
 | 
	
		
			
			| 334 | 338 |                  raise WorkspaceNotFoundInTracimRequest('No workspace_id property found in request')  # nopep8
 | 
	
		
			
			| 335 | 339 |              wapi = WorkspaceApi(
 | 
	
	
		
			
			|  | @@ -338,8 +342,6 @@ class TracimRequest(Request):
 | 
	
		
			
			| 338 | 342 |                  config=request.registry.settings['CFG']
 | 
	
		
			
			| 339 | 343 |              )
 | 
	
		
			
			| 340 | 344 |              workspace = wapi.get_one(workspace_id)
 | 
	
		
			
			| 341 |  | -        except JSONDecodeError as exc:
 | 
	
		
			
			| 342 |  | -            raise WorkspaceNotFound('Invalid JSON content') from exc
 | 
	
		
			
			| 343 | 345 |          except NoResultFound as exc:
 | 
	
		
			
			| 344 | 346 |              raise WorkspaceNotFound(
 | 
	
		
			
			| 345 | 347 |                  'Workspace {} does not exist '
 | 
	
	
		
			
			|  | @@ -362,6 +364,11 @@ class TracimRequest(Request):
 | 
	
		
			
			| 362 | 364 |          try:
 | 
	
		
			
			| 363 | 365 |              if 'new_workspace_id' in request.json_body:
 | 
	
		
			
			| 364 | 366 |                  workspace_id = request.json_body['new_workspace_id']
 | 
	
		
			
			|  | 367 | +                if not isinstance(workspace_id, int):
 | 
	
		
			
			|  | 368 | +                    if workspace_id.isdecimal():
 | 
	
		
			
			|  | 369 | +                        workspace_id = int(workspace_id)
 | 
	
		
			
			|  | 370 | +                    else:
 | 
	
		
			
			|  | 371 | +                        raise WorkspaceNotFoundInTracimRequest('workspace_id is not a correct integer')  # nopep8
 | 
	
		
			
			| 365 | 372 |              if not workspace_id:
 | 
	
		
			
			| 366 | 373 |                  raise WorkspaceNotFoundInTracimRequest('No new_workspace_id property found in body')  # nopep8
 | 
	
		
			
			| 367 | 374 |              wapi = WorkspaceApi(
 |