o
    !hK                     @   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
 d dlT d dlmZ d dlT dd	lmZ d dlT d d
lmZ G dd deZG dd deZG dd deZG dd deZG dd deZdS )    )APIView)Responsestatus)RefreshToken)make_passwordcheck_password)*)authenticate   )authenticated)EndUserc                   @      e Zd Zdd ZdS )
AdminLogInc              
   C   s   zH|j d}|j d}|r|stdditjdW S t||d}|r?t|}tdt|j	t||j
|j|jdtjdW S tdd	itjdW S  tyh } ztdd
t| itjdW  Y d }~S d }~ww )NemailpasswordmessageEmail and password are requiredr   )usernamer   zLogin successful)r   accessrefreshuser_idr   is_staffzInvalid email or passwordzLogin failed: )datagetr   r   HTTP_400_BAD_REQUESTr
   r   for_userstraccess_tokenidr   r   HTTP_200_OKHTTP_401_UNAUTHORIZED	ExceptionHTTP_500_INTERNAL_SERVER_ERROR)selfrequestr   r   userr   e r(   @/home/esfera/Desktop/Rishu/Ai-agent/AiAgent/admin_panel/views.pypost   s.   
	(zAdminLogIn.postN__name__
__module____qualname__r*   r(   r(   r(   r)   r          r   c                   @   r   )AdminRegisterc              
   C   s   z[|j d}|j d}|r|stdditjdW S tjj|d r.tdditjdW S tjj	|||d}t
jj||t|d	}t|}td
t|jt||j|jdtjdW S  ty{ } ztddt| itjdW  Y d }~S d }~ww )Nr   r   r   r   r   )r   z#User with this email already exists)r   r   r   )r&   r   r   zAdmin registered successfully)r   r   r   r   r   zRegistration failed: )r   r   r   r   r   Userobjectsfilterexistscreate_user
SuperAdmincreater   r   r   r   r   r   r   HTTP_201_CREATEDr"   r#   )r$   r%   r   r   r&   super_adminr   r'   r(   r(   r)   r*   .   s>   
(zAdminRegister.postNr+   r(   r(   r(   r)   r0   -   r/   r0   c                   @   s   e Zd Zdd Zdd ZdS )AdminProfilec              
   C   s  zdzt |}W n ty% } ztdt|itjdW  Y d }~W S d }~ww tjj|d	 }|s;tdditj
dW S tj 	 }|sPtd|jdtjdW S |j|j|j|jd}ttjd|d	W S  ty } ztdt|itjdW  Y d }~S d }~ww )
Nr   r   r   user not foundz8Your account has been Inactive, Please contact to admin.)r   r   )	firstNamegenderphoneNumberimagezFetched Successfully)status_codestatus_messageall_data)r   r"   r   r   r   r!   r1   r2   r3   firstHTTP_404_NOT_FOUNDr6   allr   HTTP_406_NOT_ACCEPTABLEr=   r>   r?   r@   r    r#   )r$   r%   uidr'   user_obj	admin_objrC   r(   r(   r)   r   U   s.   $"zAdminProfile.getc           
   
   C   sF  zzt |}W n ty% } ztdt|itjdW  Y d }~W S d }~ww tjj|d	 }|s;tdditj
dW S tjj|d	 }|sPtdditj
dW S |jd}|jd}|jd	}|jd
}	||_||_||_|	|_|  td| ttjddW S  ty } ztdt|itjdW  Y d }~S d }~ww )Nr   r   r;   r<   r&   zAdmin not foundr=   r>   r?   r@   rI   zProfile updated successfully)rA   rB   )r   r"   r   r   r   r!   r1   r2   r3   rD   rE   r6   r   r   r=   r>   r?   r@   saveprintr    r#   )
r$   r%   rH   r'   rI   rJ   r=   r>   r?   r@   r(   r(   r)   r*   u   s8   $
"zAdminProfile.postN)r,   r-   r.   r   r*   r(   r(   r(   r)   r:   T   s     r:   c                   @   r   )AdminUploadImagesc              
   C   s   z"|j }|d}g }|D ]}t|}|| qttjd|dW S  ty? } ztdt|itj	dW  Y d }~S d }~ww )Nr@   Success)rA   rB   r   r   r   )
r   getlistuploadTheDocumentappendr   r   r    r"   r   r#   )r$   r%   r   images
image_urlsr@   
image_pathr'   r(   r(   r)   r*      s   
"zAdminUploadImages.postNr+   r(   r(   r(   r)   rN      r/   rN   c                   @   r   )AdminChatBotListingc              
   C   s2  zzzt |}td| W n ty* } ztdt|itjdW  Y d }~W S d }~ww tjj	|d
 }td| |sEtdditjdW S |jrNtj }ntjj	|d}g }|D ]}||j|j|j|j|j|j d qYtd	|d
tjdW S  ty } ztdt|dtjdW  Y d }~S d }~ww )Nz---r   r   )
enduser_idz=======1===zUser not foundrK   )r   chatbot_namecategories_namedescriptionpdf_data
created_atrO   )r   r   zInternal server error)r   details)r   rM   r"   r   r   r   r!   r   r2   r3   rD   rE   is_adminchatBot_settingrF   rR   r   rX   rY   rZ   r[   r\   	isoformatr    r#   )r$   r%   rH   r'   rI   chatBotschatbot_listingbotr(   r(   r)   r      s<   $

	$zAdminChatBotListing.getN)r,   r-   r.   r   r(   r(   r(   r)   rV      s    rV   N)rest_framework.viewsr   rest_framework.responser   rest_frameworkr   rest_framework_simplejwt.tokensr   django.contrib.auth.hashersr   r   admin_panel.modelsdjango.contrib.authr
   user_panel.modelsauthenticationr   admin_panel.functionsr   r   r0   r:   rN   rV   r(   r(   r(   r)   <module>   s     'A