
    sh                         d Z dZdZddlmZ ddlmZ ddlmZm	Z	 ddl
mZ ddlmZ  G d	 d
e      Z G d de      Z G d de      Zy)zCopyright 2021, 3LizzGPL version 3zinfo@3liz.org    )
QByteArray)QDomDocument)QgsServerExceptionQgsServerResponse)write_json_response)Loggerc            	       B     e Zd Zd	dedededdf fdZdeddfdZ xZS )
ServiceErrorcodemsgresponse_codereturnNc                     t         |   |       d| _        || _        || _        || _        t        j                  | j                   d| d|        y )NLizmapz request error z: )super__init__servicer   r   r   r   criticalselfr   r   r   	__class__s       7/var/www/qgis-server/plugins/lizmap_server/exception.pyr   zServiceError.__init__   sN    	*4<<.vRuEF    responsec                     d| j                   | j                  d}|j                          t        ||| j                         y)z Format error response
        fail)statusr   messageN)r   r   clearr   r   )r   r   bodys      r   formatResponsezServiceError.formatResponse   s4     !$))ID(D,>,>?r     )	__name__
__module____qualname__strintr   r   r!   __classcell__r   s   @r   r
   r
      s@    GS Gs G3 G G@'8 @T @r   r
   c            	       2     e Zd Zddedededdf fdZ xZS )ExpressionServiceErrorr   r   r   r   Nc                 6    t         |   |||       d| _        y )N
Expression)r   r   r   r   s       r   r   zExpressionServiceError.__init__!   s    sM2#r   r"   )r$   r%   r&   r'   r(   r   r)   r*   s   @r   r,   r,      s)    $S $s $3 $ $ $r   r,   c                   L     e Zd Z	 d
dedededededdf fdZdeeffd	Z xZS )LizmapFilterExceptionr   r   locatorr   versionr   Nc                 t    t         t        |   ||       || _        || _        || _        || _        || _        y )N)r   r   r   r   r   r1   r   r2   )r   r   r   r1   r   r2   r   s         r   r   zLizmapFilterException.__init__(   s;     	 $0-H	*r   c                    t               }|j                  d      }|j                  d| j                         |j                  dd       |j	                  |       |j                  d      }|j                  d| j
                         |j	                  |j                  | j                               |j	                  |       | j                  r|j                  d| j                         |j                         dfS )	NServiceExceptionReportr2   xmlnszhttp://www.opengis.net/ogcServiceExceptionr   r1   ztext/xml; charset=utf-8)
r   createElementsetAttributer2   appendChildr   createTextNoder   r1   toByteArray)r   docrootelems       r   r!   z$LizmapFilterException.formatResponse3   s    n  !9:)T\\2'#?@  !34&$)),++DLL9:<<i6 ";;;r   ) r#   z1.3.0)	r$   r%   r&   r'   r(   r   r   r!   r)   r*   s   @r   r0   r0   &   s_    
 W^		 	 $'	 =@	 QT	 cg	<S 1 <r   r0   N)__copyright____license__	__email__qgis.PyQt.QtCorer   qgis.PyQt.QtXmlr   qgis.serverr   r   lizmap_server.corer   lizmap_server.loggerr   	Exceptionr
   r,   r0    r   r   <module>rK      sJ   &	 ' ( = 2 '@9 @$$\ $<. <r   