U
    M`aO-                     @   sZ   d dl Z d dlZd dlZG dd dZedkrVeddddd	d
ZejddZee dS )    Nc                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )Requestc                 K   s   || _ d| _d S )NF)kwargssleep)selfr    r   =/home/www/html/webservice/gn_integracao/generic/gn_request.py__init__   s    zRequest.__init__c                 K   sr   |  | j| d|kr.d|kr.d|kr.td d|krP|d |d  |d< |d= d|kr^|d= d|krnd|d< |S )Nbase_urlZroteurlzA##### gn_request:error ##### - Eh Necessario definir uma url basemethodZGET)merger   exit)r   paramsr   r   r   Z__handleParams   s    zRequest.__handleParamsc              
   K   s`   | j f |}ztjf || _W n4 tk
rR } ztt| t  W 5 d }~X Y nX i | _| jS N)	_Request__handleParamsrequestsrequestreq	Exceptionprintstrr   r   )r   r   errorr   r   r   	doRequest4   s    zRequest.doRequestc                 C   s
   |j  d S r   )headers)r   r   r   r   r   processResponseC   s    zRequest.processResponsec                 C   sB   |  D ]4\}}t|tr4||i }| || q|||< q|S )a]  
        run me with nosetests --with-doctest file.py

        >>> a = { 'first' : { 'all_rows' : { 'pass' : 'dog', 'number' : '1' } } }
        >>> b = { 'first' : { 'all_rows' : { 'fail' : 'cat', 'number' : '5' } } }
        >>> merge(b, a) == { 'first' : { 'all_rows' : { 'pass' : 'dog', 'fail' : 'cat', 'number' : '5' } } }
        True
        )items
isinstancedict
setdefaultr   )r   sourceZdestinationkeyvalueZnoder   r   r   r   H   s    	

zRequest.mergec                 C   s   d S r   r   )r   r   r   r   __del__\   s    zRequest.__del__N)	__name__
__module____qualname__r   r   r   r   r   r"   r   r   r   r   r      s   	#r   __main__z"https://sandbox.mercos.com/api/v1/z$40e7fd68-6aad-11e9-8c04-a29009f9c38az$bd361d76-6aaf-11e9-a936-a29009f9c38azapplication/json)ZCompanyTokenZApplicationTokenzContent-Type)r	   r   Zprodutos)r
   )	r   timejsonr   r#   Zmercosr   Zclientesr   r   r   r   r   <module>   s   [
^