
    koh                         d dl Z d dlZd dlmZ d dlmZ d dlmZ ddl 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 d dlmZ d dlmZ  G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Zy)    N)datetime)Response)APIView   )*)RefreshToken)authenticateloginlogoutstatus)AllowAny)settings)default_storagec                       e Zd ZegZd Zy)RegistrationAPIViewc                 X   t        |j                        }|j                         r`|j                         }t	        j
                  |      }t        dt        |j                        t        |      dt        j                        S t        |j                  t        j                        S )N)datazRegistration successful)messageaccess_tokenrefresh_tokenr   )RegisterSerializerr   is_validsaver   for_userr   strr   r   HTTP_201_CREATEDerrorsHTTP_400_BAD_REQUEST)selfrequest
serializeruserrefreshs        A/var/www/html/ai-insurance-compliance-backend/accountApp/views.pypostzRegistrationAPIView.post   s    'W\\:
 ??$D"++D1G4 #G$8$8 9!$W --	/ / J--f6Q6QRR    N)__name__
__module____qualname__r   permission_classesr&    r'   r%   r   r      s    "Sr'   r   c                       e Zd Zg Zg Zd Zy)	LoginViewc                    |j                   j                  d      }|j                   j                  d      }t        |||      }|rpt        ||       t	        j
                  |      }t        dt        |j                        t        |      t        |      j                   dt        j                        S t        ddit        j                        S )	Nusernamepassword)r0   r1   zLogin successful)r   r   r   r#   r   errorzInvalid credentials)r   getr	   r
   r   r   r   r   r   UserProfileSerializerr   HTTP_200_OKHTTP_401_UNAUTHORIZED)r    r!   argskwargsr0   r1   r#   r$   s           r%   r&   zLoginView.post(   s    <<##J/<<##J/GhJ'4 "++D1G- #G$8$8 9!$W-d388	
 ((* * /09U9U r'   N)r(   r)   r*   authentication_classesr+   r&   r,   r'   r%   r.   r.   $   s    r'   r.   c                       e Zd Zd Zy)LogoutAPIViewc                 R    t        |       t        ddit        j                        S )Nr   zLogged out successfullyr   )r   r   r   r5   )r    r!   s     r%   r&   zLogoutAPIView.post<   s"    w$=>vGYGYZZr'   Nr(   r)   r*   r&   r,   r'   r%   r;   r;   ;   s    [r'   r;   c                       e Zd Zd Zd Zy)UserProfileAPIViewc                 v    t        |j                        }t        |j                  t        j
                        S )Nr   )r4   r#   r   r   r   r5   )r    r!   r"   s      r%   r3   zUserProfileAPIView.getB   s'    *7<<8

0B0BCCr'   c                    	 t         j                  j                  |      }t        ||j                  d      }|j                         r8|j                          t	        d|j                  dt
        j                        S t	        d|j                  it
        j                        S # t         j                  $ r  t	        ddit
        j                        cY S w xY w)	N)pkr2   zUser not found.r   T)r   partialz"User details updated successfully.)r   r   )
CustomUserobjectsr3   DoesNotExistr   r   HTTP_404_NOT_FOUNDr   r   r   r   r5   r   r   )r    r!   rB   r#   r"   s        r%   putzUserProfileAPIView.putG   s    	\%%))R)0D (7<<N
 OO(LV`VeVef#)#5#57 7 *"3"34V=X=XYY && 	\W&78AZAZ[[	\s    B) )0CCN)r(   r)   r*   r3   rH   r,   r'   r%   r?   r?   A   s    D
Zr'   r?   c                       e Zd Zd Zy)UserListAPIViewc                     t         j                  j                  d      j                  d      }t	        |d      }t        |j                  t        j                        S )NT)is_staffz-id)manyr   )	rD   rE   excludeorder_byr4   r   r   r   r5   )r    r!   user_objr"   s       r%   r3   zUserListAPIView.getV   sI    %%--t-<EEeL*8>

0B0BCCr'   N)r(   r)   r*   r3   r,   r'   r%   rJ   rJ   U   s    Dr'   rJ   c                       e Zd Zd Zy)ChangePasswordAPIViewc                 ^   |j                   }|j                  j                  d      }|j                  j                  d      }|j                  |      r>|j	                  |       |j                          t        ddit        j                        S t        ddit        j                        S )Ncurrent_passwordnew_passwordr   zPassword changed successfullyr   zInvalid current password)
r#   r   r3   check_passwordset_passwordr   r   r   r5   r   )r    r!   r#   rT   rU   s        r%   r&   zChangePasswordAPIView.post^   s    ||"<<++,>?||''7/0l+IIKY(GHQWQcQcddY(BCFLgLghhr'   Nr=   r,   r'   r%   rR   rR   ]   s    
ir'   rR   )csvosr   rest_framework.responser   rest_framework.viewsr   serializersrest_framework_simplejwt.tokensr   django.contrib.authr	   r
   r   rest_frameworkr   rest_framework.permissionsr   modelsdjango.confr   django.core.files.storager   r   r.   r;   r?   rJ   rR   r,   r'   r%   <module>rd      s    
 	  , (  8 ; ; ! /    5S' S& .[G [Z Z(Dg DiG ir'   