o
    {=g6                     @   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 ddl	m
Z
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 d dlmZ ed ZG dd dejZG dd deZG dd deZG dd deZdS )    status)APIView)RefreshToken)IsAuthenticated)generics   )AdminRegistrationSerializerAdminTokenObtainPairSerializer)AdminJWTAuthentication)TokenObtainPairView)success_responsefailed_responsegenerate_random_text)logger_settings)record)Responsemsgc                   @      e Zd ZeZdd ZdS )AdminRegistrationViewc              
   O   s   t d}z(| j|jd}|jdd | | td| d|jd   t|jtj	dW S  t
yV } ztd	| d
t|  tdt| tjdW  Y d }~S d }~ww )N   dataTraise_exceptioninfoz$: Admin registration successful for emailr   codeerrorz$: Admin registration failed due to: An unexpected error occurred: )r   get_serializerr   is_validperform_creater   validated_datar   r   HTTP_201_CREATED	Exceptionstrr   HTTP_400_BAD_REQUESTselfrequestargskwargsprocess_code
serializere r1   5/var/www/html/authentication-server/adminapp/views.pypost   s   
$zAdminRegistrationView.postN)__name__
__module____qualname__r	   serializer_classr3   r1   r1   r1   r2   r          r   c                   @   r   )AdminLoginViewc                 O   s   t d}z$| j|jd}|jdd td| d|jd  t|jtj	dW S  t
yY } z%td	| d
|jd dt|  tdt| tjdW  Y d }~S d }~ww )Nr   r   Tr   r   z: Admin login successful for usernamer   r   z: Admin login failed for z: r    )r   r!   r   r"   r   getr   r$   r   HTTP_200_OKr&   r'   r   r(   r)   r1   r1   r2   r3   #   s   &$zAdminLoginView.postN)r4   r5   r6   r
   r7   r3   r1   r1   r1   r2   r9       r8   r9   c                   @   s    e Zd ZegZegZdd ZdS )AdminLogoutViewc              
   C   s   t d}|jd}|std| d tdtjdS zt|}|  td| d t	d	tj
dW S  ty] } ztd
| dt|  tdt| tjdW  Y d }~S d }~ww )Nr   refresh_tokenwarnz.: No refresh token provided in logout request.zRefresh token is requiredr   r   z-: Admin logout successful. Token blacklisted.zLogout Successfulr   z: Admin logout failed due to: r    )r   r   r;   r   r   r   r(   r   	blacklistr   r<   r&   r'   )r*   r+   r.   r>   tokenr0   r1   r1   r2   r3   2   s   $zAdminLogoutView.postN)r4   r5   r6   r   authentication_classesr   permission_classesr3   r1   r1   r1   r2   r=   .   s    r=   c                   @   s   e Zd Zdd ZdS )Pingc                 C   s   t dditjdS )NmessagezAPI is workingr   )r   r   r<   )r*   r+   r1   r1   r2   r;   B   s   zPing.getN)r4   r5   r6   r;   r1   r1   r1   r2   rD   A   s    rD   N) rest_frameworkr   rest_framework.viewsr   rest_framework_simplejwt.tokensr   rest_framework.permissionsr   r   serializersr	   r
   
customauthr   rest_framework_simplejwt.viewsr   utils.helperr   r   r   
utils.datar   utils.loggerr   rest_framework.responser   log_msgCreateAPIViewr   r9   r=   rD   r1   r1   r1   r2   <module>   s"    