o
    62h                     @   s   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
 ddlmZ ddlmZ d d	lmZ ed
dgdd Zeg ddd ZG dd dejZdS )    )render)api_view)Response)statusviewsets)transaction   )Shift)ShiftSerializer)	log_errorGETPOSTc              
   C   s:  | j dkr7ztj }t|dd}t|jW S  ty6 } ztd| tddit	j
dW  Y d }~S d }~ww | j dkrz>t / t| jd	}| r`|  t|jt	jdW  d    W S t|jt	jdW  d    W S 1 ssw   Y  W d S  ty } ztd
| tddit	j
dW  Y d }~S d }~ww d S )Nr   T)manyzshift_list.GETerror'An error occurred while fetching shiftsr   r   datazshift_list.POST&An error occurred while creating shift)methodr	   objectsallr
   r   r   	Exceptionr   r   HTTP_500_INTERNAL_SERVER_ERRORr   atomicis_validsaveHTTP_201_CREATEDerrorsHTTP_400_BAD_REQUEST)requestZshifts
serializere r#   0C:\Users\Denis\Desktop\TimeStamps\shift\views.py
shift_list   s@   




(
r%   )r   PUTDELETEc              
   C   s.  z	t jj|d}W n/ t jy   ttjd Y S  ty8 } ztd| tdditj	dW  Y d }~S d }~ww | j
dkriz
t|}t|jW S  tyh } ztd| tdditj	dW  Y d }~S d }~ww | j
d	krz<t - t|| jd
}| r|  t|jW  d    W S t|jtjdW  d    W S 1 sw   Y  W d S  ty } ztd| tdditj	dW  Y d }~S d }~ww | j
dkrz"t  |  ttjdW  d    W S 1 sw   Y  W d S  ty } ztd| tdditj	dW  Y d }~S d }~ww d S )N)pkr   zshift_detail.get_shiftr   z&An error occurred while fetching shiftr   zshift_detail.GET.An error occurred while fetching shift detailsr&   r   zshift_detail.PUT&An error occurred while updating shiftr'   zshift_detail.DELETE&An error occurred while deleting shift)r	   r   getDoesNotExistr   r   HTTP_404_NOT_FOUNDr   r   r   r   r
   r   r   r   r   r   r   r   deleteHTTP_204_NO_CONTENT)r    r(   shiftr"   r!   r#   r#   r$   shift_detail)   sr   




(


(
r2   c                       sZ   e Zd Zej ZeZ fddZ	 fddZ
 fddZ fddZ fd	d
Z  ZS )ShiftViewSetc              
      ^   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ShiftViewSet.listr   r   r   )superlistr   r   r   r   r   selfr    argskwargsr"   	__class__r#   r$   r7   `      
r5   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ShiftViewSet.creater   r   r   )	r   r   r6   creater   r   r   r   r   r8   r<   r#   r$   rA   j      
(
r@   c              
      r4   )NShiftViewSet.retriever   r)   r   )r6   retriever   r   r   r   r   r8   r<   r#   r$   rD   u   r>   rC   c              
      r?   )NShiftViewSet.updater   r*   r   )	r   r   r6   updater   r   r   r   r   r8   r<   r#   r$   rF      rB   rE   c              
      r?   )NShiftViewSet.destroyr   r+   r   )	r   r   r6   destroyr   r   r   r   r   r8   r<   r#   r$   rH      rB   rG   )__name__
__module____qualname__r	   r   r   querysetr
   serializer_classr7   rA   rD   rF   rH   __classcell__r#   r#   r<   r$   r3   \   s    


r3   N)django.shortcutsr   rest_framework.decoratorsr   rest_framework.responser   rest_frameworkr   r   	django.dbr   modelsr	   serializersr
   ErrorLogs.utilsr   r%   r2   ModelViewSetr3   r#   r#   r#   r$   <module>   s    



2