o
    0=g @                     @   s.  d dl mZmZ ddlmZ d dlmZmZ ddlmZm	Z	m
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mZmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlZddlmZm Z  e  ddl!m"Z" ed Z#e"d Z$dd Z%G dd deZ&G dd deZ'G dd deZ(dS )   )ApplicationApplicationRequirement    )Vendor) ApplicationRequirementSerializerApplicationSerializer)r   VendorSerializerUserSerializer)APIView)status)validate_required_paramsValidationError)success_responsefailed_responsegenerate_random_text)TermType)r   )record)logger_settingsN)load_dotenvdotenv_values)envmsgauth_url_usersc              
   C   sT   zt t | }|jdkrW dS W dS  t jjy) } zW Y d }~dS d }~ww )N   TF)requestsgetAUTH_SERVICE_URLstatus_code
exceptionsRequestException)selfuser_idresponsee r$   0/var/www/html/django-vendor/application/views.pycheck_user_exists   s   
r&   c                   @   4   e Zd Zd
ddZdddZd
ddZd
dd	ZdS )ApplicationRequirementsCRUDViewNc                 C   s  t d}td| dtd  d z5|r4tjj|d}t|}td| dtd  d t|jd	d
W S td| dtd  d t	ddW S  tj
yd   td| dtd  d t	dtjd Y 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: startedz1 - GET request started for ApplicationRequirementpk	completedz1 - Application requirement retrieved successfullyz.Application requirement retrieved successfullydatar   warnfailedz. - Primary key needed for specific applicationz+Primary key needed for specific applicationr   error	not_found$ - Application requirement not found!Application requirement not foundr   code - An error occurred: zAn error occurred)r   r   log_msgr   objectsr   r   r   r1   r   DoesNotExistr   HTTP_404_NOT_FOUND	ExceptionstrHTTP_500_INTERNAL_SERVER_ERROR)r    requestr.   formatprocess_codeapplication_requirement
serializerr#   r$   r$   r%   r   #   s$   "z#ApplicationRequirementsCRUDView.getc           	      C   s  t d}td| dtd  d zt|g d |jd}tjj|d	 s=td	| dtd
  d t
dtjdW S |jd}tjj|d	 satd	| dtd
  d t
dtjdW S t|jd}| r|  td| dtd  d t|  t|jddW S td	| dtd  d t
dtjdW S  ty } zt
dt| tjdW  Y d }~S d }~w ty } z#td| dtd  dt|  t
dt| tjdW  Y d }~S d }~ww )Nr)   r*   r+   r,   z2 - POST request started for ApplicationRequirement)application	term_typerequirementrH   r-   r2   r6    - Application not foundApplication not foundr9   rI   z - Term type not foundzTerm type not foundr1   r/   z/ - Application requirement created successfullyz,Application requirement created successfullyr0   validation_failedz - Validation failedzValidation failedzAn error occurred: r5   r;   )r   r   r<   r   r1   r   r   r=   filterexistsr   r   r?   r   r   is_validsaveprintr   HTTP_400_BAD_REQUESTr   rA   r@   rB   )	r    rC   rD   rE   application_idterm_type_idrG   ver#   r$   r$   r%   post6   s8   $"$z$ApplicationRequirementsCRUDView.postc           	      C   s  t d}td| dtd  d z|s)td| dtd  d td	tjd
W S tjj|d}t	|g d |j
d}tjj|d s[td| dtd  d tdtjd
W S t||j
d}| r|  td| dtd  d t|j
ddW S td| d|j d t|jtjd
W S  tjy   td| dtd  d tdtjd
 Y S  ty } ztd| dt| d tt|tjd
W  Y d }~S d }~w ty } ztd| dtd  dt|  tdtjd
W  Y d }~S d }~ww )Nr)   r*   r+   r,   z1 - PUT request started for ApplicationRequirementr2   r3   z) - Application requirement id is requiredz&Application requirement id is requiredr9   r-   )rI   rH   rJ   rH   invalidz - Invalid application IDzInvalid application IDrM   r/   z/ - Application requirement updated successfullyz,Application requirement updated successfullyr0   z" - Validation errors during updater5   r6   r7   r8    - ValidationError occurred! - An unexpected error occurred: An unexpected error occurred)r   r   r<   r   r   rT   r   r=   r   r   r1   r   rO   rP   r?   r   rQ   rR   r   errorsr>   r   rA   r@   rB   )	r    rC   r.   rD   rE   rF   rU   rG   r#   r$   r$   r%   putQ   s>   "z#ApplicationRequirementsCRUDView.putc                 C   s   t d}td| dtd  d ztjj|d}|  td| dtd  d td	d
W S  tjyM   td| dtd  d t	dt
jd Y S  tyv } ztd| dtd  dt|  t	dt
jdW  Y d }~S d }~ww )Nr)   r*   r+   r,   z4 - DELETE request started for ApplicationRequirementr-   r/   z/ - Application requirement deleted successfullyz,Application requirement deleted successfullyr4   r5   r6   r7   r8   r9   r[   r\   )r   r   r<   r   r=   r   deleter   r>   r   r   r?   r@   rA   rB   )r    rC   r.   rD   rE   rF   r#   r$   r$   r%   r_   o   s   "z&ApplicationRequirementsCRUDView.deleteNNN__name__
__module____qualname__r   rX   r^   r_   r$   r$   r$   r%   r(   "   s
    


r(   c                   @   r'   )ApplicationCRUDViewNc           	      C   s@  t d}td| dtd  d zB|r4tjj|d}t|}td| dtd  d t|jd	d
W S tj	 }t|dd}td| dtd  d t|jdd
W S  tj
yq   td| dtd  d tdtjd Y S  ty } z#td| dtd  dt|  tdt| tjdW  Y d }~S d }~ww )Nr)   r*   r+   r,   z& - GET request started for Applicationr-   r/   z% - Application retrieved successfullyz"Application retrieved successfullyr0   Tmanyz& - Applications retrieved successfullyz#Applications retrieved successfullyr5   r6   rK   rL   r9   r[   An unexpected error occurred: )r   r   r<   r   r=   r   r   r   r1   allr>   r   r   r?   r@   rA   rB   )	r    rC   r.   rD   rE   rH   rG   applicationsr#   r$   r$   r%   r      s(   
"$zApplicationCRUDView.getc                 C   s  t d}td| dtd  d zt|ddg |jd}t|s8td| dtd	  d
 tdtj	dW S |jd}t
jj|d s\td| dtd	  d tdtj	dW S t|jd}| r|  td| dtd  d t|jddW S td| dtd	  d t|jtj	dW S  ty } ztd| dt| d tt|tj	dW  Y d }~S d }~w ty } z#td| dtd  dt|  tdt| tjdW  Y d }~S d }~ww )Nr)   r*   r+   r,   z' - POST request started for Applicationr!   
listing_idr2   rY    - Invalid user IDInvalid user IDr9   r-    - Invalid listing IDInvalid listing IDrM   r/   z# - Application created successfullyz Application created successfullyr0   z0 - Validation errors during Application creationr5   rZ   r[   ri   )r   r   r<   r   r1   r   r&   r   r   rT   r   r=   rO   rP   r   rQ   rR   r   r]   r   rA   r@   rB   )r    rC   rD   rE   r!   rl   rG   r#   r$   r$   r%   rX      s8   "$zApplicationCRUDView.postc           
      C   s6  t d}td| dtd  d z|s)td| dtd  d td	tjd
W S tjj|d}t	|ddg |j
d}t|sVtd| dtd  d tdtjd
W S |j
d}tjj|d sztd| dtd  d tdtjd
W S t||j
d}| r|  td| dtd  d t|j
ddW S t|jtjd
W S  tjy   td| dtd  d tdtjd
 Y S  ty }	 ztd| dt|	 d tt|	tjd
W  Y d }	~	S d }	~	w ty }	 z#td| dtd  dt|	  tdt|	 tjd
W  Y d }	~	S d }	~	ww )Nr)   r*   r+   r,   z& - PUT request started for Applicationr2   r3   z - Application ID is requiredzApplication ID is requiredr9   r-   r!   rl   rY   rm   rn   ro   rp   rM   r/   z# - Application updated successfullyz Application updated successfullyr0   r5   r6   rK   rL   rZ   r[   ri   )r   r   r<   r   r   rT   r   r=   r   r   r1   r&   r   rO   rP   r   rQ   rR   r   r]   r>   r?   r   rA   r@   rB   )
r    rC   r.   rD   rE   rH   r!   rl   rG   r#   r$   r$   r%   r^      sD   "$zApplicationCRUDView.putc                 C   s   t d}td| dtd  d ztjj|d}|  td| dtd  d td	d
W S  tjyM   td| dtd  d t	dt
jd Y S  ty{ } z#td| dtd  dt|  t	dt| t
jdW  Y d }~S d }~ww )Nr)   r*   r+   r,   z) - DELETE request started for Applicationr-   r/   z# - Application deleted successfullyz Application deleted successfullyr4   r5   r6   rK   rL   r9   r[   ri   )r   r   r<   r   r=   r   r_   r   r>   r   r   r?   r@   rA   rB   )r    rC   r.   rD   rE   rH   r#   r$   r$   r%   r_      s   "$zApplicationCRUDView.deleter`   ra   rb   r$   r$   r$   r%   rf      s
    


!rf   c                   @   s   e Zd ZdddZdS )FullApplicantDetailNc                 C   sd  t d}td| dtd  d zTtjj|d}|jj}t|s6td| dtd  d	 t	d
t
jdW S tjj|d}t|jgdd}t|dd}	|j|	jd}
td| dtd  d t|
ddW S  tjy   td| dtd  d t	dt
jd Y S  ty } z#td| dtd  dt|  t	dt| t
jdW  Y d }~S d }~ww )Nr)   r*   r+   r,   z. - GET request started for FullApplicantDetailr-   r2   rY   rm   rn   r9   )r!   Frg   T)usersvendorsr/   z - Data retrieved successfullyzData retrieved successfullyr0   r5   r6   rK   rL   r[   ri   )r   r   r<   r   r=   r   r!   idr&   r   r   rT   r   rO   r	   r   r1   r   r>   r?   r@   rA   rB   )r    rC   rU   rD   rE   rH   r!   rs   user_serializervendor_serializerr1   r#   r$   r$   r%   r      s0   "$zFullApplicantDetail.getra   )rc   rd   re   r   r$   r$   r$   r%   rq      s    rq   ))modelsr   r   vendor.modelsr   serializersr   r   application.serializersr   r	   rest_framework.viewsr
   rest_frameworkr   utils.validationr   r   utils.helperr   r   r   terms.modelsr   utils.exceptionutils.loggerr   
utils.datar   r   dotenvr   r   utils.configr   r<   r   r&   r(   rf   rq   r$   r$   r$   r%   <module>   s.    
^b