fix(roles): Map IntegrityError to BadRequest as this is an client error, no server error.
This commit is contained in:
		
							parent
							
								
									0a3da51b92
								
							
						
					
					
						commit
						ec7bf39666
					
				|  | @ -17,7 +17,7 @@ def get(role_name) -> Role: | |||
|     else: | ||||
|         role = Role.query.filter(Role.name == role_name).one_or_none() | ||||
|     if not role: | ||||
|         raise NotFound | ||||
|         raise NotFound("no such role") | ||||
|     return role | ||||
| 
 | ||||
| 
 | ||||
|  | @ -56,11 +56,14 @@ def create_permissions(permissions): | |||
| 
 | ||||
| def create_role(name: str, permissions=[]): | ||||
|     logger.debug(f"Create new role with name: {name}") | ||||
|     role = Role(name=name) | ||||
|     db.session.add(role) | ||||
|     set_permissions(role, permissions) | ||||
|     db.session.commit() | ||||
|     logger.debug(f"Created role: {role.serialize()}") | ||||
|     try: | ||||
|         role = Role(name=name) | ||||
|         db.session.add(role) | ||||
|         set_permissions(role, permissions) | ||||
|         db.session.commit() | ||||
|         logger.debug(f"Created role: {role.serialize()}") | ||||
|     except IntegrityError: | ||||
|         raise BadRequest("role already exists") | ||||
|     return role | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue