
    pi                        d Z ddlmZ  G d de          Z G d de          Z G d de          Z G d	 d
e          Z G d de          Z G d de          Z	dS )uv  
Nom du script : exceptions.py
Chemin : /gitlab-bridge/app/core/exceptions.py
Description : Exceptions métier et techniques normalisées de l'application.
Options éventuelles : Aucune.
Exemples d'utilisation : Lever `AccessDeniedError` depuis les services.
Prérequis : Python 3.11+.
Auteur : Sylvain SCATTOLINI
Date de création / modification : 2026-03-25
Version : 1.1
    )annotationsc                  D     e Zd ZU dZdZded<   dZded<   dd fdZ xZS )BridgeErrorzException racine applicative.bridge_errorstrcodez$Une erreur applicative est survenue.messageN
str | NonereturnNonec                t    t                                          |p| j                   |p| j        | _        d S N)super__init__r	   )selfr	   	__class__s     2/var/www/html/gitlab-bridge/app/core/exceptions.pyr   zBridgeError.__init__   s4    0DL111.$,    r   )r	   r
   r   r   )	__name__
__module____qualname____doc__r   __annotations__r	   r   __classcell__r   s   @r   r   r      sl         ''D9G9999/ / / / / / / / / / /r   r   c                      e Zd ZdZdZdS )ValidationErrorvalidation_erroru%   Les données fournies sont invalides.Nr   r   r   r   r	    r   r   r   r      s        D5GGGr   r   c                      e Zd ZdZdZdS )GitLabUserNotFoundErrorgitlab_user_not_foundu$   Utilisateur non trouvé dans GitLab.Nr   r    r   r   r"   r"       s        "D4GGGr   r"   c                      e Zd ZdZdZdS )ProjectNotFoundErrorproject_not_foundzProjet GitLab introuvable.Nr   r    r   r   r%   r%   %   s        D*GGGr   r%   c                      e Zd ZdZdZdS )AccessDeniedErroraccess_deniedz4Vous n'avez pas les droits suffisants sur ce projet.Nr   r    r   r   r(   r(   *   s        DDGGGr   r(   c                  *     e Zd ZdZdZdd fd
Z xZS )GitLabApiErrorgitlab_api_erroru'   Erreur lors de l'appel à l'API GitLab.Nr	   r
   http_status
int | Noner   r   c                X    t                                          |           || _        d S r   )r   r   r-   )r   r	   r-   r   s      r   r   zGitLabApiError.__init__3   s)    !!!'2r   )NN)r	   r
   r-   r.   r   r   )r   r   r   r   r	   r   r   r   s   @r   r+   r+   /   sL        D7G3 3 3 3 3 3 3 3 3 3 3r   r+   N)
r   
__future__r   	Exceptionr   r   r"   r%   r(   r+   r    r   r   <module>r2      s1  
 
 # " " " " "/ / / / /) / / /6 6 6 6 6k 6 6 6
5 5 5 5 5k 5 5 5
+ + + + +; + + +
E E E E E E E E
3 3 3 3 3[ 3 3 3 3 3r   