
    !h                     |    d dl mZ d dlmZmZmZ ddlmZ ddlm	Z	 d dl
mZ d dlmZ  G d d	ej                  Zd
S )    )render)viewsetspermissionsstatus   )Address)AddressSerializer)IsAuthenticated)Responsec                   0    e Zd ZeZegZd Zd Zd Z	d Z
dS )AddressViewSetc                 V    t           j                            | j        j                  S )Nuser)r   objectsfilterrequestr   )selfs    '/var/www/html/e360mart/address/views.pyget_querysetzAddressViewSet.get_queryset   s"     %%4<+<%===    c                    |j         }t          j                            |                                          rt          ddg dt          j                  S |                     |j	                  }|
                                r?|                    |j                    t          dd|j	        dt          j                  S t          d	d
|j        dt          j                  S )Nr   FzYou already have an address.r   messagedatar   )r   successzAddress created successfully.errorzAddress creation failed.r   r   errors)r   r   r   r   existsr   r   HTTP_400_BAD_REQUESTget_serializerr   is_validsaveHTTP_201_CREATEDr    )r   r   argskwargsr   
serializers         r   createzAddressViewSet.create   s    |?!!t!,,3355 	 -KUWXX2   
 ((gl(;;
   	OOO...$1PZdZijj.    +EQ[Qbcc.
 
 
 	
r   c                    |                                  }|j        |j        k    rt          ddg dt          j                  S |                     ||j        d          }|                                r8|                                 t          dd|j        dt          j	                  S t          d	d
|j
        dt          j                  S )NFz+You are not allowed to update this address.r   r   T)r   partialr   zAddress updated successfully.r   zAddress update failed.r   )
get_objectr   r   r   HTTP_403_FORBIDDENr#   r   r$   r%   HTTP_200_OKr    r"   )r   r   r'   r(   instancer)   s         r   updatezAddressViewSet.update+   s    ??$$=GL(( -Zdfgg0   
 ((d(SS
   	OO$1PZdZijj)    +CzO`aa.
 
 
 	
r   c                 
   |j                             d          }|rU	 t          j                            |          }n# t          j        $ r! t          dddt          j                  cY S w xY w	 t          j                            |j                  }n3# t          j        $ r! t          dddt          j                  cY S w xY w| 	                    |          }t          d	d
|j
        dt          j                  S )Nuser_id)r3   Fz Address not found for this user.)r   r   r   r   z)Address not found for authenticated user.TzAddress retrieved successfully.r   )query_paramsgetr   r   DoesNotExistr   r   HTTP_404_NOT_FOUNDr   r#   r   r/   )r   r   r'   r(   r3   r0   r)   s          r   retrievezAddressViewSet.retrieveA   sJ   &**955 	"?..w.??'   $1STT!4     "?..GL.AA'   $1\]]!4     
 ((22
'HR\Ra
 
#% % % 	%s!    ? -A/.A/3%B -C	C	N)__name__
__module____qualname__r	   serializer_classr
   permission_classesr   r*   r1   r8    r   r   r   r   	   s_        ()*> > >
 
 
*
 
 
,% % % % %r   r   N)django.shortcutsr   rest_frameworkr   r   r   modelsr   serializersr	   rest_framework.permissionsr
   rest_framework.responser   ModelViewSetr   r>   r   r   <module>rF      s    # # # # # # 8 8 8 8 8 8 8 8 8 8       * * * * * * 6 6 6 6 6 6 , , , , , ,N% N% N% N% N%X* N% N% N% N% N%r   