Files
romm/backend/exceptions/endpoint_exceptions.py
Michael Manganiello 9ba787f6d1 fix: Remove critical log messages for 403 and 404 exceptions
These critical log messages are unnecessary and can clutter the logs,
based on user requests. This is even more notorious when RomM is
integrated to an error tracking system like Sentry.
2025-06-06 21:40:31 -03:00

76 lines
2.4 KiB
Python

from fastapi import HTTPException, status
from logger.logger import log
class PlatformNotFoundInDatabaseException(Exception):
def __init__(self, id):
self.message = f"Platform with id '{id}' not found"
super().__init__(self.message)
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=self.message)
def __repr__(self) -> str:
return self.message
class RomNotFoundInDatabaseException(Exception):
def __init__(self, id):
self.message = f"Rom with id '{id}' not found"
super().__init__(self.message)
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=self.message)
def __repr__(self) -> str:
return self.message
class CollectionNotFoundInDatabaseException(Exception):
def __init__(self, id):
self.message = f"Collection with id '{id}' not found"
super().__init__(self.message)
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=self.message)
def __repr__(self) -> str:
return self.message
class CollectionPermissionError(Exception):
def __init__(self, id):
self.message = f"Permission denied for collection with id '{id}'"
super().__init__(self.message)
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=self.message)
def __repr__(self) -> str:
return self.message
class CollectionAlreadyExistsException(Exception):
def __init__(self, name):
self.message = f"Collection with name '{name}' already exists"
super().__init__(self.message)
log.critical(self.message)
raise HTTPException(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail=self.message
)
def __repr__(self) -> str:
return self.message
class RomNotFoundInRetroAchievementsException(Exception):
def __init__(self, id):
self.message = f"Rom with id '{id}' does not exist on RetroAchievements"
super().__init__(self.message)
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=self.message)
class SGDBInvalidAPIKeyException(Exception):
def __init__(self):
self.message = "Invalid SGDB API key"
super().__init__(self.message)
log.critical(self.message)
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED, detail=self.message
)
def __repr__(self) -> str:
return self.message