o
    i                     @   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 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 G dd dejZdS )    )render)viewsets)action)Response)	Provincia)	Localidadstatus)swagger_auto_schema)openapi   )ProvinciaSerializer)LocalidadSerializerc                	   @   s   e Zd Zeddgdddd Zedejejdejej	d	d
idgde
deddddeddgdddd Zedejejdejej	dd
idgde
dddddeddgdddd ZdS )ProvinciaViewSetFgetlist_province)detailmethodsurl_pathc                 C   s    t j }t|dd}t|jS )NT)many)r   objectsallr   r   data)selfrequest
provincias
serializer r   ,/var/www/html/crm_dreinet/provincia/views.pyr      s   

zProvinciaViewSet.list_provincez!Devuelve una provincia por su ID.idzID de la provincia)typedescription)r    
propertiesrequiredr   zSolicitud incorrectaProvincia no encontrada)   i  i  )operation_descriptionrequest_body	responsespostget_province_by_idc                 C   sn   |j d}|stdditjdS z	tjj|d}W n tjy-   tdditjd Y S w t	|}t|j S )Nr   error!Se requiere el id de la provinciar   r   r$   )
r   r   r   r	   HTTP_400_BAD_REQUESTr   r   DoesNotExistHTTP_404_NOT_FOUNDr   )r   r   provincia_id	provinciar   r   r   r   r*      s   
z#ProvinciaViewSet.get_province_by_idz+Get all localities for a given province ID.province_idzID of the provincezLocalities with province namezBad requestzProvince not foundget_localities_by_idc                 C   s   |j d}|stdditjdS ztjj|d}|j}W n tjy0   tdditj	d Y S w t
jj|ddd	d
}t|t|dS )Nr3   r+   r,   r   r-   r$   )r1   r   nombrecodigo_postal)nombre_provincialocalidades)r   r   r   r	   r.   r   r   r5   r/   r0   r   filtervalueslist)r   r   r3   r2   r7   r8   r   r   r   r4   1   s   
z%ProvinciaViewSet.get_localities_by_idN)__name__
__module____qualname__r   r   r
   r   SchemaTYPE_OBJECTTYPE_INTEGERr   r   r*   r4   r   r   r   r   r      sB    

r   N)django.shortcutsr   rest_frameworkr   rest_framework.decoratorsr   rest_framework.responser   Models.Provinciar   Models.Localidadr   r	   drf_yasg.utilsr
   drf_yasgr   serializersr   localidad.serializersr   ViewSetr   r   r   r   r   <module>   s    