o
    0=g	                     @   s   d dl mZ ddlmZ ddlmZ d dl mZ d dlmZm	Z	m
Z
 d dlmZ d dlmZ ed	 ZG d
d dejZG dd dejZdS )    )generics   )
Newsletter)NewsletterSerializer)status)success_responsefailed_responsegenerate_random_text)record)logger_settingsmsgc                       s*   e Zd Zej ZeZ fddZ	  Z
S )NewsletterCreateViewc                    s   t d}td| dtd  d z"t j|g|R i |}td| dtd  d t|jdd	W S  ty] } ztd
| dtd
  dt|  t	dt
jdW  Y d }~S d }~ww )N   info: startedz& - Newsletter creation process started	completedz" - Newsletter created successfullyzNewsletter created successfullydatar   error! - An unexpected error occurred: z;An unexpected error occurred while creating the newsletter.r   code)r	   r
   log_msgsupercreater   r   	Exceptionstrr   r   HTTP_500_INTERNAL_SERVER_ERROR)selfrequestargskwargsprocess_coderesponsee	__class__ */var/www/html/django-vendor/utils/views.pyr      s   "zNewsletterCreateView.create)__name__
__module____qualname__r   objectsallquerysetr   serializer_classr   __classcell__r(   r(   r&   r)   r      s    
r   c                   @   s"   e Zd Zej ZeZdd Z	dS )NewsletterSubscribeViewc                 O   s   t d}td| dtd  d z=| j|jd}| r6|  td| dtd  d t|jd	d
W S td| dtd  d|j  t	|jt
jdW S  tyx } ztd| dtd  dt|  t	dt
jdW  Y d }~S d }~ww )Nr   r   r   r   z* - Newsletter subscription process started)r   r   z, - Successfully subscribed to the newsletterz*Successfully subscribed to the newsletter.r   warnvalidation_failedz - Validation errors: r   r   r   zAAn unexpected error occurred while subscribing to the newsletter.)r	   r
   r   get_serializerr   is_validsaver   errorsr   r   HTTP_400_BAD_REQUESTr   r   r   )r   r    r!   r"   r#   
serializerr%   r(   r(   r)   r   %   s    "zNewsletterSubscribeView.createN)
r*   r+   r,   r   r-   r.   r/   r   r0   r   r(   r(   r(   r)   r2   !   s    
r2   N)rest_frameworkr   modelsr   serializersr   r   utils.helperr   r   r	   utils.loggerr
   
utils.datar   r   CreateAPIViewr   r2   r(   r(   r(   r)   <module>   s   