
    i                     f    d dl Z d dlZd dlT ddlmZ  e j        e          Z G d de          ZdS )    N)*   )
Connectionc                        e Zd Z fdZddZd ZddZd	 Zd
 Zd Z	d Z
d Zd Zd Zd Zd ZddZd Z	 	 	 	 	 	 d dZd Zd Zd Zd Zd Zd Zd Zd Z xZS )!KaitenClientc                     |                     d          r|nd| }d|vrd|d<    t                      j        |g|R i | d S )Nhttpzhttps://api_versionv1)
startswithsuper__init__)selfurlargskwargs	__class__s       (./modules/kaiten/kaiten_client/client.pyr   zKaitenClient.__init__   sh    ^^F++Acc1AC1A1A&&$(F=!.t...v.....    N   c           	         |p| j         }|dz  }|                     d|| j                   | j                            || j        d|| j                  5 }t                              d| d|j         d|j	                    |
                                 t          |d	          5 }|                    |
          D ]}|                    |           	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nz?dl=trueGET)methodr   headersT)r   streamtimeoutverifyz
HTTP: GET z ->  zwb+)
chunk_size)r   logger_curl_debugdownload_headers_sessionget
verify_sslloggerdebugstatus_codereasonraise_for_statusopeniter_contentwrite)r   download_url	save_pathr   r   responsefchunks           r   download_filezKaitenClient.download_file   s   )T\
"etG\]]]])?  
 
 	# LL`l``8L``x``aaa%%'''i'' #1%22j2II # #EGGENNNN## # # # # # # # # # # # # # #	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s7   AC;'/C#C;#C'	'C;*C'	+C;;C?C?c              #      K   |                      d          }|                     |ddi          }|r
|d         V  ddddd}	 |                     ||          }|sd S |D ]}|V  |d	xx         |d
         z  cc<   ;)Nzcompany/users
owner_onlyTparamsr   d   	all_users)offsetlimitfor_members_sectiontemporarily_inactive_statusr9   r:   resource_urlr#   )r   r   ownerr6   usersusers         r   get_company_userszKaitenClient.get_company_users&   s      00 lD%9:: 	(NNN #'+6	
 
	0HHSH00E   



8w/	0r   r   r7   c              #      K   ddi}|t          |          |d<   |t          |          |d<   |                     d          }	 |                     ||          }|sd S |D ]}|V  |dxx         |d         z  cc<   ;)Ninclude_inactiveTr9   r:   r@   r5   )intr>   r#   )r   r9   r:   r6   r   r@   rA   s          r   	get_userszKaitenClient.get_users>   s      
 "6{{F8!%jjF7O((	0HHSH00E   



8w/	0r   c                 V    |                      d          }|                     |          S )Nzusers/currentr=   r   r   s     r   get_current_userzKaitenClient.get_current_userP   s%    00xx}}r   c                 |    |dd}|                      d          }|                     ||          }|r|d         S d S )NT)idsrD   r@   r5   r   r=   )r   user_idr6   r   results        r   get_userzKaitenClient.get_userT   sZ     $
 
 ((#f-- 	!9	 	r   c                 f    |                      d          }| d| d}|                     |          S )Nspaces/z/usersr=   r   space_idbase_urlr   s       r   get_space_userszKaitenClient.get_space_users^   s;    $$X..,,H,,,xx}}r   c                     	 |                      d          }| d| d| }|                     |          S # t          j        $ r}|j        j        dk    rY d }~d S |d }~ww xY w)NrP   rQ   z/users/i  )r>   r#   requests	HTTPErrorr/   r'   )r   rS   rL   rT   r   excs         r   get_space_userzKaitenClient.get_space_userc   s    	((22H::::::C88C== ! 	 	 	|'3..tttttI	s   36 A"AAA"c                 V    |                      d          }|                     |          S )Nz
card-typesr=   rH   s     r   get_card_typeszKaitenClient.get_card_typesm   s%    --xx}}r   c                 V    |                      d          }|                     |          S )NrP   r=   rH   s     r   
get_spaceszKaitenClient.get_spacesq   s%    ))xx}}r   c                 d    |                      d          }| d| }|                     |          S )NrP   rQ   r=   rR   s       r   	get_spacezKaitenClient.get_spaceu   8    $$X..&&H&&xx}}r   c                 f    |                      d          }| d| d}|                     |          S )NrP   rQ   z/boardsr=   rR   s       r   get_space_boardszKaitenClient.get_space_boardsz   s;    $$X..--H---xx}}r   c                 f    |                      d          }| d| d}|                     |          S )NboardsrQ   z/columnsr=   r   board_idrT   r   s       r   get_board_columnszKaitenClient.get_board_columns   s;    $$X....H...xx}}r   c              #   `   K   	 |                      ||||          }|sd S |D ]}|V  ||z  },)NT)rg   archivedr9   r:   )	get_cards)r   rg   rj   r9   r:   cardscards          r   get_board_cardszKaitenClient.get_board_cards   sf      	NN!!	 #  E    



eOF	r   c                 d    |                      d          }| d| }|                     |          S )Nre   rQ   r=   rf   s       r   	get_boardzKaitenClient.get_board   ra   r   c                 \   ddi}|t          |          |d<   |t          |          |d<   |$t          |                                          |d<   |||d<   |t          |          |d<   |t          |          |d<   |                     d	          }|                     ||
          S )Norder_bycreatedrS   rg   rj   additional_card_fieldsr9   r:   rl   r5   )rE   strlowerr>   r#   )	r   rS   rg   rj   rt   r9   r:   r6   r   s	            r   rk   zKaitenClient.get_cards   s     	
 !$XF:!$XF:!$X!4!4!6!6F:!-/EF+,"6{{F8!%jjF7O((xxFx+++r   c                 d    |                      d          }| d| }|                     |          S )Nrl   rQ   r=   r   card_idrT   r   s       r   get_cardzKaitenClient.get_card   s8    $$W--%%G%%xx}}r   c                 j    |                      d          }| d| d| }|                     |          S )Nrl   rQ   z/checklists/r=   )r   ry   checklist_idrT   r   s        r   get_card_checklistzKaitenClient.get_card_checklist   s@    $$W--??G????xx}}r   c                 f    |                      d          }| d| d}|                     |          S )Nrl   rQ   z	/commentsr=   rx   s       r   get_card_commentszKaitenClient.get_card_comments   s;    $$W--..G...xx}}r   c                 f    |                      d          }| d| d}|                     |          S )Nrl   rQ   z
/time-logsr=   rx   s       r   get_card_time_logszKaitenClient.get_card_time_logs   s;    $$W--//G///xx}}r   c                 f    |                      d          }| d| d}|                     |          S )Nrl   rQ   z/tagsr=   rx   s       r   get_card_tagszKaitenClient.get_card_tags   s;    $$W--**G***xx}}r   c              #      K   ddd}|                      d          }	 |                     ||          }|sd S |D ]}|V  |dxx         |d         z  cc<   ;)	Nr   r7   )r9   r:   tagsTr5   r9   r:   r=   )r   r6   r   r   tags        r   get_tagszKaitenClient.get_tags   s      
 
 ''	088C8//D   				8w/	0r   c              #      K   dddddd}|                      d          }	 |                     ||	          }|sd S |D ]}|V  |d
xx         |d         z  cc<   ;)Nr   r7   truenameasc)r9   r:   include_valuesrr   order_directionzcompany/custom-propertiesTr5   r9   r:   r=   )r   r6   r   custom_propertiescustom_propertys        r   get_custom_propertiesz"KaitenClient.get_custom_properties   s      $$
 
  ;<<	0 $V < <$ #4 & &%%%%%8w/	0r   c                     i }|                                  D ]?}|d         dk    r#d |                    dg           D             |d<   ||d|d          <   @|S )Ntypeselectc                 :    i | ]}t          |d                    |S )id)ru   ).0vs     r   
<dictcomp>z+KaitenClient.get_fields.<locals>.<dictcomp>   s$    (`(`(`QQtWq(`(`(`r   selectValuescf_r   )r   r#   )r   fieldsfields      r   
get_fieldszKaitenClient.get_fields   sw    //11 	0 	0EV}(((`(`%))N\^B_B_(`(`(`n%*/F&t&&''r   )Nr   )r   r7   )Nr   r7   )NNNNr   r7   )__name__
__module____qualname__r   r2   rB   rF   rI   rN   rU   rZ   r\   r^   r`   rc   rh   rn   rp   rk   rz   r}   r   r   r   r   r   r   __classcell__)r   s   @r   r   r      s       / / / / /# # # #&0 0 000 0 0 0$      
        
  
  
      #, , , ,8  
  
  
  
  
0 0 00 0 0$      r   r   )	loggingrW   cmf.include
connectionr   	getLoggerr   r%   r    r   r   <module>r      s          " " " " " "		8	$	$g g g g g: g g g g gr   