EspHome
This commit is contained in:
320
synology_api/exceptions.py
Normal file
320
synology_api/exceptions.py
Normal file
@@ -0,0 +1,320 @@
|
||||
from .error_codes import error_codes, auth_error_codes, download_station_error_codes, file_station_error_codes
|
||||
from .error_codes import virtualization_error_codes
|
||||
|
||||
|
||||
# Base exception:
|
||||
class SynoBaseException(Exception):
|
||||
"""Base class for an exception. Defines error_message."""
|
||||
|
||||
def __init__(self, error_message: str, *args: object) -> None:
|
||||
super().__init__(*args)
|
||||
self.error_message = error_message
|
||||
return
|
||||
|
||||
|
||||
# Classes to reraise Exceptions from requests.
|
||||
class SynoConnectionError(SynoBaseException):
|
||||
"""Class to raise when a connection error occurs."""
|
||||
|
||||
def __init__(self, error_message: str, *args: object) -> None:
|
||||
super().__init__(error_message=error_message, *args)
|
||||
return
|
||||
|
||||
|
||||
class HTTPError(SynoBaseException):
|
||||
"""Class to raise when a http error occurs."""
|
||||
|
||||
def __init__(self, error_message: str, *args: object) -> None:
|
||||
super().__init__(error_message, *args)
|
||||
return
|
||||
|
||||
|
||||
class JSONDecodeError(SynoBaseException):
|
||||
"""Class to raise when server fails to send JSON."""
|
||||
|
||||
def __init__(self, error_message: str, *args: object) -> None:
|
||||
super().__init__(error_message, *args)
|
||||
return
|
||||
|
||||
|
||||
# Classes for when we receive an error code in the JSON from the server.
|
||||
class LoginError(SynoBaseException):
|
||||
"""Class for an error during login."""
|
||||
|
||||
def __init__(self, error_code: int, *args: object) -> None:
|
||||
self.error_code: int = error_code
|
||||
if error_code not in error_codes.keys():
|
||||
super().__init__(error_message=auth_error_codes[error_code], *args)
|
||||
else:
|
||||
super().__init__(error_message=error_codes[error_code], *args)
|
||||
return
|
||||
|
||||
|
||||
class LogoutError(SynoBaseException):
|
||||
"""Class for an error during logout."""
|
||||
|
||||
def __init__(self, error_code: int, *args: object) -> None:
|
||||
self.error_code: int = error_code
|
||||
if error_code in error_codes.keys():
|
||||
super().__init__(error_message=error_codes[error_code], *args)
|
||||
else:
|
||||
super().__init__(error_message=auth_error_codes[error_code], *args)
|
||||
return
|
||||
|
||||
|
||||
class DownloadStationError(SynoBaseException):
|
||||
"""Class for an error during a download station request."""
|
||||
|
||||
def __init__(self, error_code: int, *args: object) -> None:
|
||||
self.error_code: int = error_code
|
||||
if error_code in error_codes.keys():
|
||||
super().__init__(error_message=error_codes[error_code], *args)
|
||||
elif error_code in download_station_error_codes.keys():
|
||||
super().__init__(error_message=download_station_error_codes[error_code], *args)
|
||||
else:
|
||||
super().__init__(error_message="DownloadStation Error: %i" % error_code, *args)
|
||||
return
|
||||
|
||||
|
||||
class FileStationError(SynoBaseException):
|
||||
"""Class for an error during a file station request."""
|
||||
|
||||
def __init__(self, error_code: int, *args: object) -> None:
|
||||
self.error_code: int = error_code
|
||||
if error_code in error_codes.keys():
|
||||
super().__init__(error_message=error_codes[error_code], *args)
|
||||
elif error_code in file_station_error_codes.keys():
|
||||
super().__init__(error_message=file_station_error_codes[error_code], *args)
|
||||
else:
|
||||
super().__init__(error_message="FileStation Error: %i" % error_code, *args)
|
||||
return
|
||||
|
||||
|
||||
class VirtualizationError(SynoBaseException):
|
||||
"""Class for an error during a virtualization request."""
|
||||
|
||||
def __init__(self, error_code: int, *args: object) -> None:
|
||||
self.error_code = error_code
|
||||
if error_code in error_codes.keys():
|
||||
super().__init__(error_message=error_codes[error_code], *args)
|
||||
elif error_code in virtualization_error_codes.keys():
|
||||
super().__init__(error_message=virtualization_error_codes[error_code], *args)
|
||||
else:
|
||||
super().__init__(error_message="Virtualization Error: %i" % error_code, *args)
|
||||
return
|
||||
|
||||
|
||||
class AudioStationError(SynoBaseException):
|
||||
"""Class for an error during an audio station request. NOTE: I can't find any documentation on the audio station
|
||||
webAPI errors numbers and their respective messages."""
|
||||
|
||||
def __init__(self, error_code: int, *args: object) -> None:
|
||||
self.error_code = error_code
|
||||
if error_code in error_codes.keys():
|
||||
super().__init__(error_message=error_codes[error_code], *args)
|
||||
else:
|
||||
super().__init__(error_message="AudioStation Error: %i" % error_code, *args)
|
||||
return
|
||||
|
||||
|
||||
class ActiveBackupError(SynoBaseException):
|
||||
"""Class for an error during ActiveBackup request. NOTE: I can't find any documentation on error codes or their
|
||||
respective messages."""
|
||||
|
||||
def __init__(self, error_code: int, *args: object) -> None:
|
||||
self.error_code = error_code
|
||||
if error_code in error_codes.keys():
|
||||
super().__init__(error_message=error_codes[error_code], *args)
|
||||
else:
|
||||
super().__init__(error_message='ActiveBackup Error: %i' % error_code, *args)
|
||||
|
||||
|
||||
class BackupError(SynoBaseException):
|
||||
"""Class for an error during backup request. NOTE: Again I can't find error code documentation."""
|
||||
|
||||
def __init__(self, error_code: int, *args: object) -> None:
|
||||
self.error_code = error_code
|
||||
if error_code in error_codes.keys():
|
||||
super().__init__(error_message=error_codes[error_code], *args)
|
||||
else:
|
||||
super().__init__(error_message="Backup Error: %i" % error_code, *args)
|
||||
return
|
||||
|
||||
|
||||
class CertificateError(SynoBaseException):
|
||||
"""Class for an error during Core.Certificate request. NOTE: Lacking documentation."""
|
||||
|
||||
def __init__(self, error_code: int, *args: object) -> None:
|
||||
self.error_code = error_code
|
||||
if error_code in error_codes.keys():
|
||||
super().__init__(error_message=error_codes[error_code])
|
||||
else:
|
||||
super().__init__(error_message="Certificate Error: %i" % error_code, *args)
|
||||
return
|
||||
|
||||
|
||||
class DHCPServerError(SynoBaseException):
|
||||
"""Class for an error during a DHCPServer request."""
|
||||
|
||||
def __init__(self, error_code: int, *args: object) -> None:
|
||||
self.error_code = error_code
|
||||
if error_code in error_codes.keys():
|
||||
super().__init__(error_message=error_codes[error_code], *args)
|
||||
else:
|
||||
super().__init__(error_message="DHCPServer Error: %i" % error_code, *args)
|
||||
return
|
||||
|
||||
|
||||
class DirectoryServerError(SynoBaseException):
|
||||
"""Class for an error during a directory server request. NOTE: No docs on errors."""
|
||||
|
||||
def __init__(self, error_code: int, *args: object) -> None:
|
||||
self.error_code = error_code
|
||||
if error_code in error_codes.keys():
|
||||
super().__init__(error_message=error_codes[error_code], *args)
|
||||
else:
|
||||
super().__init__(error_message="DirectoryServer Error: %i" % error_code, *args)
|
||||
return
|
||||
|
||||
|
||||
class DockerError(SynoBaseException):
|
||||
"""Class for an error during a docker request. NOTE: No docs on errors."""
|
||||
|
||||
def __init__(self, error_code: int, *args: object) -> None:
|
||||
self.error_code = error_code
|
||||
if error_code in error_codes.keys():
|
||||
super().__init__(error_message=error_codes[error_code], *args)
|
||||
else:
|
||||
super().__init__(error_message="Docker Error: %i" % error_code, *args)
|
||||
return
|
||||
|
||||
|
||||
class DriveAdminError(SynoBaseException):
|
||||
"""Class for an error during a drive admin request. NOTE: No error docs."""
|
||||
|
||||
def __init__(self, error_code: int, *args: object) -> None:
|
||||
self.error_code = error_code
|
||||
if error_code in error_codes.keys():
|
||||
super().__init__(error_message=error_codes[error_code], *args)
|
||||
else:
|
||||
super().__init__(error_message="DriveAdmin Error: %i" % error_code, *args)
|
||||
return
|
||||
|
||||
|
||||
class LogCenterError(SynoBaseException):
|
||||
"""Class for an error during a LogCenter request. NOTE: No docs on errors.... again."""
|
||||
|
||||
def __init__(self, error_code: int, *args: object) -> None:
|
||||
self.error_code = error_code
|
||||
if error_code in error_codes.keys():
|
||||
super().__init__(error_message=error_codes[error_code], *args)
|
||||
else:
|
||||
super().__init__(error_message="LogCenter Error: %i" % error_code, *args)
|
||||
return
|
||||
|
||||
|
||||
class NoteStationError(SynoBaseException):
|
||||
"""Class for an error during a NoteStation request. NOTE: No error docs."""
|
||||
|
||||
def __init__(self, error_code: int, *args: object) -> None:
|
||||
self.error_code = error_code
|
||||
if error_code in error_codes.keys():
|
||||
super().__init__(error_message=error_codes[error_code], *args)
|
||||
else:
|
||||
super().__init__(error_message="NoteStation Error: %i" % error_code, *args)
|
||||
return
|
||||
|
||||
|
||||
class OAUTHError(SynoBaseException):
|
||||
"""Class for an error during a OAUTH request. NOTE: No error docs."""
|
||||
|
||||
def __init__(self, error_code: int, *args: object) -> None:
|
||||
self.error_code = error_code
|
||||
if error_code in error_codes.keys():
|
||||
super().__init__(error_message=error_codes[error_code], *args)
|
||||
else:
|
||||
super().__init__(error_message="OAUTH Error: %i" % error_code, *args)
|
||||
return
|
||||
|
||||
|
||||
class PhotosError(SynoBaseException):
|
||||
"""Class for an error during a Photos request. NOTE: No error docs."""
|
||||
|
||||
def __init__(self, error_code: int, *args: object) -> None:
|
||||
self.error_code = error_code
|
||||
if error_code in error_codes.keys():
|
||||
super().__init__(error_message=error_codes[error_code], *args)
|
||||
else:
|
||||
super().__init__(error_message="Photos Error: %i" % error_code, *args)
|
||||
return
|
||||
|
||||
|
||||
class SecurityAdvisorError(SynoBaseException):
|
||||
"""Class for an error during a SecurityAdvisor request. NOTE: What docs?"""
|
||||
|
||||
def __init__(self, error_code: int, *args: object) -> None:
|
||||
self.error_code = error_code
|
||||
if error_code in error_codes.keys():
|
||||
super().__init__(error_message=error_codes[error_code], *args)
|
||||
else:
|
||||
super().__init__(error_message="SecurityAdvisor Error: %i" % error_code, *args)
|
||||
return
|
||||
|
||||
|
||||
class UniversalSearchError(SynoBaseException):
|
||||
"""Class for an error during UniversalSearch request. NOTE:... no docs on errors...."""
|
||||
|
||||
def __init__(self, error_code: int, *args: object) -> None:
|
||||
self.error_code = error_code
|
||||
if error_code in error_codes.keys():
|
||||
super().__init__(error_message=error_codes[error_code], *args)
|
||||
else:
|
||||
super().__init__(error_message="UniversalSearch Error: %i" % error_code, *args)
|
||||
return
|
||||
|
||||
|
||||
class USBCopyError(SynoBaseException):
|
||||
"""Class for an error during a USBCopy request. NOTE: No docs on errors."""
|
||||
|
||||
def __init__(self, error_code: int, *args: object) -> None:
|
||||
self.error_code = error_code
|
||||
if error_code in error_codes.keys():
|
||||
super().__init__(error_message=error_codes[error_code], *args)
|
||||
else:
|
||||
super().__init__(error_message="USBCopy Error: %i" % error_code, *args)
|
||||
|
||||
|
||||
class VPNError(SynoBaseException):
|
||||
"""Class for an error during a VPN request. NOTE: No docs on errors."""
|
||||
|
||||
def __init__(self, error_code: int, *args: object) -> None:
|
||||
self.error_code = error_code
|
||||
if error_code in error_codes.keys():
|
||||
super().__init__(error_message=error_codes[error_code], *args)
|
||||
else:
|
||||
super().__init__(error_message="VPN Error: %i" % error_code, *args)
|
||||
return
|
||||
|
||||
|
||||
class CoreSysInfoError(SynoBaseException):
|
||||
"""Class for an error during a SYNO.Core.*, 'SYNO.Backup.Service.NetworkBackup', SYNO.Storage.*,
|
||||
'SYNO.Finder.FileIndexing.Status', 'SYNO.S2S.Server.Pair', SYNO.ResourceMonitor.*
|
||||
"""
|
||||
|
||||
def __init__(self, error_code: int, *args: object) -> None:
|
||||
self.error_code = error_code
|
||||
if error_code in error_codes.keys():
|
||||
super().__init__(error_message=error_codes[error_code], *args)
|
||||
else:
|
||||
super().__init__(error_message="CoreSysInfo Error: %i" % error_code, *args)
|
||||
return
|
||||
|
||||
|
||||
class UndefinedError(SynoBaseException):
|
||||
"""Class for undefined errors."""
|
||||
|
||||
def __init__(self, error_code: int, api_name: str, *args: object) -> None:
|
||||
self.error_code = error_code
|
||||
self.api_name = api_name
|
||||
super().__init__(error_message="Undefined Error: API: %s, Code: %i" % (api_name, error_code), *args)
|
||||
return
|
||||
Reference in New Issue
Block a user