""" Exceptions related to the IAM module Exceptions: - GroupNotFoundException: Takes an optional group_id int - PermNotFoundException: Takes an optional perm_id int """ from typing import Optional from fastapi import HTTPException, status class GroupNotFoundException(HTTPException): def __init__(self, group_id: Optional[int] = None) -> None: detail = ( "Group not found" if group_id is None else f"User with ID '{group_id}' was not found." ) super().__init__( status_code=status.HTTP_404_NOT_FOUND, detail=detail, ) class PermNotFoundException(HTTPException): def __init__(self, perm_id: Optional[int] = None) -> None: detail = ( "Permission not found" if perm_id is None else f"User with ID '{perm_id}' was not found." ) super().__init__( status_code=status.HTTP_404_NOT_FOUND, detail=detail, )