U
    TGh                     @   s   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
 d
eZG dd deZG dd deZdS )zCopyright 2021, 3LizzGPL version 3zinfo@3liz.org    )
QByteArray)QDomDocument)QgsServerExceptionQgsServerResponse)write_json_response)Loggerc                       s:   e Zd Zd	eeedd fddZeddddZ  ZS )
ServiceError  Ncodemsgresponse_codereturnc                    sD   t  | d| _|| _|| _|| _t| j d| d|  d S )NLizmapz request error z: )super__init__servicer   r   r   r   criticalselfr   r   r   	__class__ 9/var/www/lizmap/lizmap/plugins/lizmap_server/exception.pyr      s    zServiceError.__init__)responser   c                 C   s*   d| j | jd}|  t||| j dS )z Format error response
        Zfail)statusr   messageN)r   r   clearr   r   )r   r   bodyr   r   r   formatResponse   s    zServiceError.formatResponse)r	   )	__name__
__module____qualname__strintr   r   r   __classcell__r   r   r   r   r      s   r   c                       s*   e Zd Zdeeedd fddZ  ZS )ExpressionServiceErrorr	   Nr
   c                    s   t  ||| d| _d S )N
Expression)r   r   r   r   r   r   r   r   !   s    zExpressionServiceError.__init__)r	   )r    r!   r"   r#   r$   r   r%   r   r   r   r   r&      s   r&   c                       s@   e Zd Zdeeeeedd fddZeefdd	d
Z  ZS )LizmapFilterException r	   1.3.0N)r   r   locatorr   versionr   c                    s4   t t| || || _|| _|| _|| _|| _d S )N)r   r   r   r   r   r+   r   r,   )r   r   r   r+   r   r,   r   r   r   r   (   s    zLizmapFilterException.__init__)r   c                 C   s   t  }|d}|d| j |dd || |d}|d| j ||| j || | jr||d| j |	 dfS )	NZServiceExceptionReportr,   Zxmlnszhttp://www.opengis.net/ogcZServiceExceptionr   r+   ztext/xml; charset=utf-8)
r   ZcreateElementsetAttributer,   ZappendChildr   ZcreateTextNoder   r+   ZtoByteArray)r   docrootelemr   r   r   r   3   s    



z$LizmapFilterException.formatResponse)r)   r	   r*   )	r    r!   r"   r#   r$   r   r   r   r%   r   r   r   r   r(   &   s            r(   N)__copyright____license__	__email__qgis.PyQt.QtCorer   Zqgis.PyQt.QtXmlr   qgis.serverr   r   lizmap_server.corer   lizmap_server.loggerr   	Exceptionr   r&   r(   r   r   r   r   <module>   s   