o
    h                     @   sz   d dl mZ d dlmZmZ d dlmZ d dlmZ G dd dej	Z
G dd dej	Zd dl mZ G d	d
 d
ej	ZdS )    )serializers)RefreshToken
TokenError)Users)auth_pwd_hashc                   @   s@   e Zd ZejddddidZejdddddd	d
Zdd ZdS )LoginSerializerTzUsername untuk loginexamplejohndoe)required	help_textstylezPassword userpassword	secret123)
input_typer   )r
   
write_onlyr   r   c                 C   s   | d}| d}|r|stddiztjdj |d}W n tjy0   tddiw |jt|kr?tddit	 }|j
|d	< |j|d
< t|dd rV|jjnd |d< |j}t|t||j
|jt|dd rq|jjnd ddS )Nusrr   detailz"Username dan password wajib diisi.pk_roles)r   zUser tidak ditemukan.zPassword salah.user_idusernameroleidr   r   )refreshaccessuser)getr   ValidationErrorr   objectsselect_relatedDoesNotExistpwdr   r   _pkr   getattrr   r   access_tokenstr)selfattrsr   r   r   r   r$    r(   >/var/www/html/mfile_papteng_new/webapp/api/auth/serializers.pyvalidate   s.   



zLoginSerializer.validateN)__name__
__module____qualname__r   	CharFieldr   r   r*   r(   r(   r(   r)   r      s    r   c                   @   s&   e Zd ZejdddidZdd ZdS )CustomTokenRefreshSerializerz1Refresh token untuk mendapatkan access token barur   z'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...)r   r   c                 C   sh   | d}zt|}W n ty   tddiw t|j}|t|| d| d| dddS )	Nr   r   z-Refresh token tidak valid atau sudah expired.r   r   r   r   )r   r   r   )r   r   r   r   r   r%   r$   )r&   r'   refresh_tokenr   r   r(   r(   r)   r*   <   s   

z%CustomTokenRefreshSerializer.validateN)r+   r,   r-   r   r.   r   r*   r(   r(   r(   r)   r/   6   s    r/   c                   @   s   e Zd ZdZdd ZdS )LogoutSerializerz2Serializer kosong karena logout hanya hapus cookiec                 K   s*   | d}|r|d |d d S d S )Nresponser$   r0   )r   delete_cookie)r&   kwargsr2   r(   r(   r)   saveS   s
   

zLogoutSerializer.saveN)r+   r,   r-   __doc__r5   r(   r(   r(   r)   r1   Q   s    r1   N)rest_frameworkr   rest_framework_simplejwt.tokensr   r   webapp.models.masterr   webapp.authr   
Serializerr   r/   r1   r(   r(   r(   r)   <module>   s    /