o
    rHh]                     @   sr   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
 ddlmZmZ d dlmZ G d	d
 d
ejZdS )    )render)viewsetsstatus)Response)transaction   )User)UserSerializerUserReadSerializer)	log_errorc                       sb   e Zd Zej ZeZdZ	dd Z
 fddZ fddZ fdd	Z fd
dZdd Z  ZS )UserViewSetidc                 C   s   | j dv rtS tS )N)listretrieve)actionr
   r	   )self r   /C:\Users\Denis\Desktop\TimeStamps\user\views.pyget_serializer_class   s   
z UserViewSet.get_serializer_classc              
      ^   zt  j|g|R i |W S  ty. } ztd| tdditjdW  Y d }~S d }~ww )NUserViewSet.listerrorz&An error occurred while fetching usersr   )superr   	Exceptionr   r   r   HTTP_500_INTERNAL_SERVER_ERRORr   requestargskwargse	__class__r   r   r         
r   c              
         z%t   t j|g|R i |W  d    W S 1 sw   Y  W d S  tyE } ztd| tdditjdW  Y d }~S d }~ww )NUserViewSet.creater   z%An error occurred while creating userr   )	r   atomicr   creater   r   r   r   r   r   r!   r   r   r'         
(
r%   c              
      r   )NUserViewSet.retriever   z-An error occurred while fetching user detailsr   )r   r   r   r   r   r   r   r   r!   r   r   r   *   r#   r)   c              
      r$   )NUserViewSet.updater   z%An error occurred while updating userr   )	r   r&   r   updater   r   r   r   r   r   r!   r   r   r+   4   r(   r*   c              
   O   s   z+t   |  }|j  |  ttjdW  d    W S 1 s$w   Y  W d S  tyK } zt	d| tdditj
dW  Y d }~S d }~ww )Nr   UserViewSet.destroyr   z%An error occurred while deleting user)r   r&   
get_objectsettingsdeleter   r   HTTP_204_NO_CONTENTr   r   r   )r   r   r   r   instancer    r   r   r   destroy?   s   


(
r,   )__name__
__module____qualname__r   objectsallquerysetr	   serializer_classlookup_fieldr   r   r'   r   r+   r2   __classcell__r   r   r!   r   r      s    


r   N)django.shortcutsr   rest_frameworkr   r   rest_framework.responser   	django.dbr   modelsr   serializersr	   r
   ErrorLogs.utilsr   ModelViewSetr   r   r   r   r   <module>   s    