U
    hx                     @   sB   d dl Z d dlZd dlT ddlmZ e eZG dd deZdS )    N)*   )
Connectionc                       s   e Zd Z fddZd+ddZdd Zd,ddZdd Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zd-dd Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Z  ZS ).KaitenClientc                    s@   | dr|nd| }d|kr(d|d< t j|f|| d S )Nhttpzhttps://api_versionZv1)
startswithsuper__init__)selfurlargskwargs	__class__ (./modules/kaiten/kaiten_client/client.pyr
      s    zKaitenClient.__init__N   c              
   C   s   |p| j }| jd|d | jj|d|| jd`}td| d|j d|j  |	  t
|d"}|j|d	D ]}|| qpW 5 Q R X W 5 Q R X d S )
NZGET)methodr   T)streamtimeoutZverifyz
HTTP: GET z ->  zwb+)
chunk_size)r   Zlogger_curl_debugZ_sessiongetZ
verify_sslloggerdebugstatus_codereasonZraise_for_statusopenZiter_contentwrite)r   Zdownload_urlZ	save_pathr   r   responsefchunkr   r   r   download_file   s    
 zKaitenClient.download_filec                 C   s   |  d}| |S )Nzcompany/usersresource_urlr   r   r   r   r   r   get_company_users$   s    
zKaitenClient.get_company_usersr   d   c                 c   sx   ddi}|d k	rt ||d< |d k	r0t ||d< | d}| j||d}|sNqt|D ]
}|V  qR|d  |d 7  < q:d S )Ninclude_inactiveToffsetlimitusersparamsintr%   r   )r   r*   r+   r.   r   r,   userr   r   r   	get_users(   s     
zKaitenClient.get_usersc                 C   s2   |dd}|  d}| j||d}|r.|d S d S )NT)Zidsr)   r,   r-   r   r$   )r   user_idr.   r   resultr   r   r   get_user:   s    
zKaitenClient.get_userc                 C   s$   |  d}| d| d}| |S )Nspaces/z/usersr$   r   space_idbase_urlr   r   r   r   get_space_usersD   s    
zKaitenClient.get_space_usersc              
   C   sn   z*|  d}| d| d| }| |W S  tjk
rh } z|jjdkrTW Y d S |W 5 d }~X Y nX d S )Nr6   r7   z/users/i  )r%   r   requestsZ	HTTPErrorr    r   )r   r9   r3   r:   r   excr   r   r   get_space_userI   s    

zKaitenClient.get_space_userc                 C   s   |  d}| |S )Nz
card-typesr$   r&   r   r   r   get_card_typesS   s    
zKaitenClient.get_card_typesc                 C   s   |  d}| |S )Nr6   r$   r&   r   r   r   
get_spacesW   s    
zKaitenClient.get_spacesc                 C   s"   |  d}| d| }| |S )Nr6   r7   r$   r8   r   r   r   	get_space[   s    
zKaitenClient.get_spacec                 C   s$   |  d}| d| d}| |S )Nr6   r7   z/boardsr$   r8   r   r   r   
get_boards`   s    
zKaitenClient.get_boardsc                 C   s$   |  d}| d| d}| |S )Nboardsr7   z/columnsr$   r   board_idr:   r   r   r   r   get_board_columnse   s    
zKaitenClient.get_board_columnsc                 C   s"   |  d}| d| }| |S )NrC   r7   r$   rD   r   r   r   	get_boardj   s    
zKaitenClient.get_boardc                 C   sr   ddd}|d k	rt ||d< |d k	r2t ||d< |d k	rFt ||d< |d k	rZt ||d< | d}| j||d	S )
NZcreateddescription)Zorder_byZadditional_card_fieldsr9   rE   r*   r+   cardsr-   r/   )r   r9   rE   r*   r+   r.   r   r   r   r   	get_cardso   s    
zKaitenClient.get_cardsc                 C   s"   |  d}| d| }| |S )NrI   r7   r$   r   card_idr:   r   r   r   r   get_card   s    
zKaitenClient.get_cardc                 C   s(   |  d}| d| d| }| |S )NrI   r7   z/checklists/r$   )r   rL   Zchecklist_idr:   r   r   r   r   get_card_checklist   s    
zKaitenClient.get_card_checklistc                 C   s$   |  d}| d| d}| |S )NrI   r7   z	/commentsr$   rK   r   r   r   get_card_comments   s    
zKaitenClient.get_card_commentsc                 C   s$   |  d}| d| d}| |S )NrI   r7   z
/time-logsr$   rK   r   r   r   get_card_time_logs   s    
zKaitenClient.get_card_time_logsc                 C   s$   |  d}| d| d}| |S )NrI   r7   z/tagsr$   rK   r   r   r   get_card_tags   s    
zKaitenClient.get_card_tags)Nr   )r   r(   )NNr   r(   )__name__
__module____qualname__r
   r#   r'   r2   r5   r;   r>   r?   r@   rA   rB   rF   rG   rJ   rM   rN   rO   rP   rQ   __classcell__r   r   r   r   r      s&   




r   )	Zloggingr<   Zcmf.includeZ
connectionr   Z	getLoggerrR   r   r   r   r   r   r   <module>   s
   
