U
    ä«FcU  ã                   @   s(   d Z ddlZddlZG dd„ deƒZdS )z@Set up credentials (.env) and application variables (config.yml)é    Nc                   @   s`   e Zd ZdZdd„ Zedd„ ƒZedd„ ƒZedd	„ ƒZ	ed
d„ ƒZ
edd„ ƒZedd„ ƒZdS )ÚConfigz-All configuration for this app is loaded herec              	   K   s˜   t j d¡dkr|  ¡  | dt j t j t¡¡¡| _td 	| j¡ƒ�H}t
j|t
jd�}|d | _|d | _|d | _|d	 | _|d
 | _W 5 Q R X d S )NÚENVÚprodÚpathz{0}/config.yml)ÚLoaderÚ
debug_modeÚendpointÚhostÚkeysÚport)ÚosÚenvironÚgetÚinit_environmentr   ÚabspathÚdirnameÚ__file__ÚopenÚformatÚyamlÚloadZ
FullLoaderÚ_debug_modeÚ	_endpointÚ_hostÚ_keysÚ_port)ÚselfÚoptsÚstreamÚconfig© r    úC/tmp/pip-unpacked-wheel-7j3043uk/sendgrid/helpers/inbound/config.pyÚ__init__	   s     ÿ



zConfig.__init__c               	   C   s€   t j t j t¡¡} d | ¡}t j |¡r|t|ƒ�D}| ¡ }|D ]0}| 	¡  
d¡}t|ƒdkr@|d t j|d < q@W 5 Q R X dS )zVAllow variables assigned in .env available using
           os.environ.get('VAR_NAME')z{0}/.envú=é   é   r   N)r   r   r   r   r   r   Úexistsr   Ú	readlinesÚstripÚsplitÚlenr   )Ú	base_pathZenv_pathÚfÚlinesÚlineÚvarr    r    r!   r      s    

zConfig.init_environmentc                 C   s   | j S )z.Flask debug mode - set to False in production.)r   ©r   r    r    r!   r   (   s    zConfig.debug_modec                 C   s   | j S )z(Endpoint to receive Inbound Parse POSTs.)r   r0   r    r    r!   r   -   s    zConfig.endpointc                 C   s   | j S )z!URL that the sender will POST to.)r   r0   r    r    r!   r	   2   s    zConfig.hostc                 C   s   | j S )z®Incoming Parse fields to parse. For reference, see
        https://sendgrid.com/docs/Classroom/Basics/Inbound_Parse_Webhook/setting_up_the_inbound_parse_webhook.html
        )r   r0   r    r    r!   r
   7   s    zConfig.keysc                 C   s   | j S )zPort to listen on.)r   r0   r    r    r!   r   >   s    zConfig.portN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r"   Ústaticmethodr   Úpropertyr   r   r	   r
   r   r    r    r    r!   r      s   




r   )r4   r   r   Úobjectr   r    r    r    r!   Ú<module>   s   