U
    h                     @   s:   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	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debugZstatus_codereasonZraise_for_statusopenZiter_contentwrite)r   Zdownload_urlZ	save_pathr   r   Zresponsefchunkr   r   r   download_file   s    
 zKaitenClient.download_filer   d   c                 C   sD   i }|d k	rt ||d< |d k	r,t ||d< | d}| j||dS )Noffsetlimitzcompany/usersparamsintresource_urlr   )r   r#   r$   r&   r   r   r   r   	get_users"   s    
zKaitenClient.get_usersc                 C   s   |  d}| |S )Nz
card-typesr)   r   r   r   r   r   r   get_card_types+   s    
zKaitenClient.get_card_typesc                 C   s   |  d}| |S )Nspacesr+   r,   r   r   r   
get_spaces/   s    
zKaitenClient.get_spacesc                 C   s"   |  d}| d| }| |S )Nr.   /r+   r   space_idbase_urlr   r   r   r   	get_space3   s    
zKaitenClient.get_spacec                 C   s$   |  d}| d| d}| |S )Nr.   r0   z/boardsr+   r1   r   r   r   
get_boards8   s    
zKaitenClient.get_boardsc                 C   s$   |  d}| d| d}| |S )Nboardsr0   z/columnsr+   r   board_idr3   r   r   r   r   get_board_columns=   s    
zKaitenClient.get_board_columnsc                 C   s"   |  d}| d| }| |S )Nr6   r0   r+   r7   r   r   r   	get_boardB   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_fieldsr2   r8   r#   r$   cardsr%   r'   )r   r2   r8   r#   r$   r&   r   r   r   r   	get_cardsG   s    
zKaitenClient.get_cardsc                 C   s"   |  d}| d| }| |S )Nr<   r0   r+   r   card_idr3   r   r   r   r   get_cardX   s    
zKaitenClient.get_cardc                 C   s(   |  d}| d| d| }| |S )Nr<   r0   z/checklists/r+   )r   r?   Zchecklist_idr3   r   r   r   r   get_card_checklist]   s    
zKaitenClient.get_card_checklistc                 C   s$   |  d}| d| d}| |S )Nr<   r0   z	/commentsr+   r>   r   r   r   get_card_commentsb   s    
zKaitenClient.get_card_commentsc                 C   s$   |  d}| d| d}| |S )Nr<   r0   z
/time-logsr+   r>   r   r   r   get_card_timelogsg   s    
zKaitenClient.get_card_timelogsc                 C   s$   |  d}| d| d}| |S )Nr<   r0   z/tagsr+   r>   r   r   r   get_card_tagsl   s    
zKaitenClient.get_card_tags)Nr   )r   r"   )NNr   r"   )__name__
__module____qualname__r
   r!   r*   r-   r/   r4   r5   r9   r:   r=   r@   rA   rB   rC   rD   __classcell__r   r   r   r   r   
   s   

	
r   )ZloggingZcmf.includeZ
connectionr   Z	getLoggerrE   r   r   r   r   r   r   <module>   s   
