o
    i5                     @   s2   d dl mZ d dlmZ d dlZG dd dZdS )    )HttpResponseServerError)settingsNc                   @   s(   e Zd ZdZdd Zdd Zdd ZdS )	ErrorNotificationMiddlewarezDMiddleware per catturare errori del server e inviare notifiche emailc                 C   s
   || _ d S Nget_response)selfr    r	   +/var/www/saasdg/saasdg/events/middleware.py__init__   s   
z$ErrorNotificationMiddleware.__init__c                 C   s   |  |}|S r   r   )r   requestresponser	   r	   r
   __call__   s   
z$ErrorNotificationMiddleware.__call__c              
   C   s   z0ddl m} d}t|drt|j}t }td|  td|  ||||| W t	d
S  tyU } ztd|  tdt   W Y d	}~t	d
S d	}~ww )z#Gestisce le eccezioni non catturate   )invia_notifica_errore500status_codezCodice errore: zTraceback: z#Errore nel middleware di notifica: zTraceback originale: NzErrore interno del server)
viewsr   hasattrstrr   	traceback
format_excprint	Exceptionr   )r   r   	exceptionr   codice_erroretraceback_infoer	   r	   r
   process_exception   s    

z-ErrorNotificationMiddleware.process_exceptionN)__name__
__module____qualname____doc__r   r   r   r	   r	   r	   r
   r      s
    r   )django.httpr   django.confr   r   r   r	   r	   r	   r
   <module>   s    