o
    &X2ig  ã                   @   s:   d dl mZ d dlZG dd„ deƒZeG dd„ dƒƒZdS )é    )Ú	dataclassNc                   @   s   e Zd ZdZdS )ÚAroFloConfigErroru)   Error de configuraciÃ³n de la app Aroflo.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© r   r   ú>/var/www/html/flask_server/apps/aroflo_connector_app/config.pyr      s    r   c                   @   s`   e Zd ZU eed< eed< eed< eed< eed< eed< eed< dZeed	< eddd„ƒZdS )ÚAroFloSettingsÚbase_urlÚ	u_encodedÚ	p_encodedÚ
api_secretÚorg_encodedÚacceptÚhost_ipé   ÚtimeoutÚreturnc                 C   s€   g d¢}dd„ |D ƒ}|rt dd |¡› ƒ‚| t d¡t d¡t d¡t d	¡t d
¡t dd¡t dd¡tt dd¡ƒdS )ui  
        Carga la configuraciÃ³n desde variables de entorno.

        Obligatorias:
          - AROFLO_BASE_URL
          - AROFLO_UENCODED
          - AROFLO_PENCODED
          - AROFLO_API_SECRET
          - AROFLO_ORG_ENCODED
        Opcionales:
          - AROFLO_ACCEPT (text/json por defecto)
          - AROFLO_HOST_IP
          - AROFLO_TIMEOUT
        )ÚAROFLO_BASE_URLÚAROFLO_UENCODEDÚAROFLO_PENCODEDÚAROFLO_API_SECRETÚAROFLO_ORG_ENCODEDc                 S   s   g | ]}t  |¡d u r|‘qS )N)ÚosÚgetenv)Ú.0Úvr   r   r	   Ú
<listcomp>+   s    z+AroFloSettings.from_env.<locals>.<listcomp>z)Faltan variables de entorno para AroFlo: z, r   r   r   r   r   ÚAROFLO_ACCEPTz	text/jsonÚAROFLO_HOST_IPÚ ÚAROFLO_TIMEOUTÚ30)r   r   r   r   r   r   r   r   )r   Újoinr   r   Úint)ÚclsÚrequiredÚmissingr   r   r	   Úfrom_env   s    ÿ

øzAroFloSettings.from_envN)r   r
   )	r   r   r   ÚstrÚ__annotations__r   r%   Úclassmethodr)   r   r   r   r	   r
   	   s   
 r
   )Údataclassesr   r   ÚRuntimeErrorr   r
   r   r   r   r	   Ú<module>   s
    