3

< ^า#  ใ               @   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mZ d dlmZ 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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 )้    )ฺstatus)ฺAPIView)ฺResponse)ฺAllowAny)ฺ
AutoSchema)ฺcoreapiฺ
coreschemaฺuritemplate)ฺUserServicec               @   sฦ   e Zd ZefZeejdddej	 dejdddej	 dejdddej	 dejdddej	 dejdddej	 dejd	ddej	 dejd
ddej	 dejdddej	 dgdZ
dddZdS )ฺ
SignupViewฺemailTฺform)ฺrequiredฺlocationฺschemaฺpasswordฺ
first_nameฺ	last_nameฺgenderฺdobฺphone_noฺaddress)ฺmanual_fieldsNc             C   s   t j|dd}t|tjdS )z*
        Create User/ Signup User
        N)ฺformat)r   )ฺuserServiceZsign_upr   r   ฺHTTP_200_OK)ฺselfฺrequestr   ฺresultฉ r   ๚*/var/www/html/itrack/api/views/userView.pyฺpost@   s    zSignupView.post)N)ฺ__name__ฺ
__module__ฺ__qualname__r   ฺpermission_classesr   r   ฺFieldr   ฺStringr   r!   r   r   r   r    r      sV   






r   c               @   s   e Zd ZefZeejdddej	 dejdddej	 dejdddej	 dejddd	ej	 dejd
dd	ej	 dgdZ
dddZdS )ฺ	LoginViewr   Tr   )r   r   r   r   ฺ	device_idFzdevice-typeฺheaderzapp-version)r   Nc             C   s   t j|dd}t|tjdS )z
        Login
        N)r   )r   )r   ฺloginr   r   r   )r   r   r   r   r   r   r    r!   k   s    zLoginView.post)N)r"   r#   r$   r   r%   r   r   r&   r   r'   r   r!   r   r   r   r    r(   H   s8   



r(   c            	   @   s`   e Zd ZdZeejdddej dejdddej dejdddej dgd	Z	dddZ
d
S )ฺ
LogoutViewz
    Logout
    zdevice-typeFr*   )r   r   r   r)   r   zapp-version)r   Nc             C   s   t j|d d}t|tjdS )N)r   )r   )r   ฺlogoutr   r   r   )r   r   r   r   r   r   r    r!      s    zLogoutView.post)N)r"   r#   r$   ฺ__doc__r   r   r&   r   r'   r   r!   r   r   r   r    r,   s   s$   

r,   c               @   s   e Zd ZefZdddZdS )ฺSendOTPViewNc             C   s   t j||dd}t|tjdS )z
        Send OTP
        N)r   )r   )r   Zgenerate_otpr   r   r   )r   r   r   r   r   r   r   r    ฺget   s    zSendOTPView.get)N)r"   r#   r$   r   r%   r0   r   r   r   r    r/      s   r/   c               @   sN   e Zd ZefZeejdddej	 dejdddej	 dgdZ
d
dd	ZdS )ฺVerifyOTPViewr   Tr   )r   r   r   ฺotp)r   Nc             C   s   t j|dd}t|tjdS )z
        Verify OTP
        N)r   )r   )r   Z
verify_otpr   r   r   )r   r   r   r   r   r   r    r!   ฏ   s    zVerifyOTPView.post)N)r"   r#   r$   r   r%   r   r   r&   r   r'   r   r!   r   r   r   r    r1      s   
r1   c               @   sN   e Zd ZefZeejdddej	 dejdddej	 dgdZ
d
dd	ZdS )ฺResetPasswordViewr   Tr   )r   r   r   r   )r   Nc             C   s   t j|dd}t|tjdS )z 
        Reset Password
        N)r   )r   )r   Zreset_passwordr   r   r   )r   r   r   r   r   r   r    ฺputศ   s    zResetPasswordView.put)N)r"   r#   r$   r   r%   r   r   r&   r   r'   r   r4   r   r   r   r    r3   ถ   s   
r3   c               @   s่   e Zd Zeejdddej dejdddej dejdddej dejdddej dejdddej dejd	ddej dejd
ddej dejdddej dejdddej dejdddej dg
dZdddZ	dS )ฺCreateUserViewr   Tr   )r   r   r   r   r   r   r   r   ฺroler   ฺabout_usฺimage)r   Nc             C   s   t j|dd}t|tjdS )z
        create user
        N)r   )r   )r   ฺcreater   r   r   )r   r   r   r   r   r   r    r!     s    zCreateUserView.post)N)
r"   r#   r$   r   r   r&   r   r'   r   r!   r   r   r   r    r5   ฯ   sh   








r5   c               @   s   e Zd ZdddZdS )ฺUserDetailViewNc             C   s   t j||dd}t|tjdS )z 
        get user by id
        N)r   )r   )r   Zget_user_by_idr   r   r   )r   r   ฺpkr   r   r   r   r    r0     s    zUserDetailView.get)N)r"   r#   r$   r0   r   r   r   r    r:     s   r:   c               @   s่   e Zd Zeejdddej dejdddej dejdddej dejdddej dejdddej dejd	ddej dejd
ddej dejdddej dejdddej dejdddej dg
dZdddZ	dS )ฺUpdateUserViewr   Tr   )r   r   r   r   r   r   r   r   r6   r   r7   r8   )r   Nc             C   s   t j|dd}t|tjdS )z
        Update user
        N)r   )r   )r   Zupdate_userr   r   r   )r   r   r;   r   r   r   r   r    r4   _  s    zUpdateUserView.put)N)
r"   r#   r$   r   r   r&   r   r'   r   r4   r   r   r   r    r<     sh   








r<   N)ฺrest_frameworkr   ฺrest_framework.viewsr   ฺrest_framework.responser   ฺrest_framework.permissionsr   ฺrest_framework.schemasr   ฺrest_framework.compatr   r   r	   Zapi.services.userr
   r   r   r(   r,   r/   r1   r3   r5   r:   r<   r   r   r   r    ฺ<module>   s    <+ H