
    Xi                     d    d dl Z d dlZd dl ddlmZ  e j
                  e      Z G d de      Zy)    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                 n    |j                  d      r|nd| }d|vrd|d<   t        |   |g|i | y )Nhttpzhttps://api_versionv1)
startswithsuper__init__)selfurlargskwargs	__class__s       (./modules/kaiten/kaiten_client/client.pyr   zKaitenClient.__init__   sE    ^^F+c8C51A&$(F=!.t.v.    c           	         |xs | j                   }|dz  }| j                  d|| j                         | j                  j	                  || j                  d|| j
                        5 }t        j                  d| d|j                   d|j                          |j                          t        |d	      5 }|j                  |
      D ]  }|j                  |        	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)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\G\]]]))??  
 	# LL:l^48L8L7MQxN_`a%%'i' #1%22j2I #EGGEN##	# 	## #	# 	#s%   (AC>7)C2!C>2C;	7C>>Dc              #      K   | j                  d      }| j                  |ddi      }|r|d    ddddd}	 | j                  ||      }|sy |D ]  }|  |d	xx   |d
   z  cc<   2w)Nzcompany/users
owner_onlyTparamsr   d   	all_users)offsetlimitfor_members_sectiontemporarily_inactive_statusr8   r9   resource_urlr"   )r   r   ownerr5   usersusers         r   get_company_userszKaitenClient.get_company_users&   s     0 lD%9:(N #'+6	
 HHSH0E 
8w/ s   A*A,c              #      K   ddi}|t        |      |d<   |t        |      |d<   | j                  d      }	 | j                  ||      }|sy |D ]  }|  |dxx   |d   z  cc<   2w)Ninclude_inactiveTr8   r9   r?   r4   )intr=   r"   )r   r8   r9   r5   r   r?   r@   s          r   	get_userszKaitenClient.get_users>   s     
 "6{F8!%jF7O(HHSH0E 
8w/ s   A)A+c                 F    | j                  d      }| j                  |      S )Nzusers/currentr<   r   r   s     r   get_current_userzKaitenClient.get_current_userP   s     0xx}r   c                 d    |dd}| j                  d      }| j                  ||      }|r|d   S y )NT)idsrC   r?   r4   r   r<   )r   user_idr5   r   results        r   get_userzKaitenClient.get_userT   sE     $
 (#f-!9 r   c                 V    | j                  d      }| d| d}| j                  |      S )Nspaces/z/usersr<   r   space_idbase_urlr   s       r   get_space_userszKaitenClient.get_space_users^   s2    $$X.
!H:V,xx}r   c                     	 | j                  d      }| d| d| }| j                  |      S # t        j                  $ r%}|j                  j
                  dk(  rY d }~y |d }~ww xY w)NrO   rP   z/users/i  )r=   r"   requests	HTTPErrorr.   r&   )r   rR   rK   rS   r   excs         r   get_space_userzKaitenClient.get_space_userc   sk    	((2HJaz	:C88C= !! 	||''3.I	s   +. A&A!A!!A&c                 F    | j                  d      }| j                  |      S )Nz
card-typesr<   rG   s     r   get_card_typeszKaitenClient.get_card_typesm   s     -xx}r   c                 F    | j                  d      }| j                  |      S )NrO   r<   rG   s     r   
get_spaceszKaitenClient.get_spacesq   s     )xx}r   c                 T    | j                  d      }| d| }| j                  |      S )NrO   rP   r<   rQ   s       r   	get_spacezKaitenClient.get_spaceu   0    $$X.
!H:&xx}r   c                 V    | j                  d      }| d| d}| j                  |      S )NrO   rP   z/boardsr<   rQ   s       r   get_space_boardszKaitenClient.get_space_boardsz   s2    $$X.
!H:W-xx}r   c                 V    | j                  d      }| d| d}| j                  |      S )NboardsrP   z/columnsr<   r   board_idrS   r   s       r   get_board_columnszKaitenClient.get_board_columns   s2    $$X.
!H:X.xx}r   c              #   ^   K   	 | j                  ||||      }|sy |D ]  }|  ||z  })w)N)rf   archivedr8   r9   )	get_cards)r   rf   ri   r8   r9   cardscards          r   get_board_cardszKaitenClient.get_board_cards   sR     NN!!	 # E  
eOF s   +-c                 T    | j                  d      }| d| }| j                  |      S )Nrd   rP   r<   re   s       r   	get_boardzKaitenClient.get_board   r`   r   c                    ddi}|t        |      |d<   |t        |      |d<   |t        |      j                         |d<   |||d<   |t        |      |d<   |t        |      |d<   | j                  d	      }| j	                  ||
      S )Norder_bycreatedrR   rf   ri   additional_card_fieldsr8   r9   rk   r4   )rD   strlowerr=   r"   )	r   rR   rf   ri   rs   r8   r9   r5   r   s	            r   rj   zKaitenClient.get_cards   s     	
 !$XF:!$XF:!$X!4!4!6F:!-/EF+,"6{F8!%jF7O(xxFx++r   c                 T    | j                  d      }| d| }| j                  |      S )Nrk   rP   r<   r   card_idrS   r   s       r   get_cardzKaitenClient.get_card   s0    $$W-
!G9%xx}r   c                 Z    | j                  d      }| d| d| }| j                  |      S )Nrk   rP   z/checklists/r<   )r   rx   checklist_idrS   r   s        r   get_card_checklistzKaitenClient.get_card_checklist   s6    $$W-
!G9L?xx}r   c                 V    | j                  d      }| d| d}| j                  |      S )Nrk   rP   z	/commentsr<   rw   s       r   get_card_commentszKaitenClient.get_card_comments   s2    $$W-
!G9I.xx}r   c                 V    | j                  d      }| d| d}| j                  |      S )Nrk   rP   z
/time-logsr<   rw   s       r   get_card_time_logszKaitenClient.get_card_time_logs   s2    $$W-
!G9J/xx}r   c                 V    | j                  d      }| d| d}| j                  |      S )Nrk   rP   z/tagsr<   rw   s       r   get_card_tagszKaitenClient.get_card_tags   s2    $$W-
!G9E*xx}r   c              #      K   ddd}| j                  d      }	 | j                  ||      }|sy |D ]  }|  |dxx   |d   z  cc<   2w)Nr   r6   )r8   r9   tagsr4   r8   r9   r<   )r   r5   r   r   tags        r   get_tagszKaitenClient.get_tags   sm     
 '88C8/D 	8w/ s   A
Ac              #      K   dddddd}| j                  d      }	 | j                  ||      }|sy |D ]  }|  |d	xx   |d
   z  cc<   2w)Nr   r6   truenameasc)r8   r9   include_valuesrq   order_directionzcompany/custom-propertiesr4   r8   r9   r<   )r   r5   r   custom_propertiescustom_propertys        r   get_custom_propertiesz"KaitenClient.get_custom_properties   sy     $$
  ;< $V <$#4 &%%&8w/ s   AAc                     i }| j                         D ]E  }|d   dk(  r0|j                  dg       D ci c]  }t        |d         | c}|d<   ||d|d    <   G |S c c}w )NtypeselectselectValuesidcf_)r   r"   rt   )r   fieldsfieldvs       r   
get_fieldszKaitenClient.get_fields   sz    //1 	0EV}(BG))N\^B_(`QQtWq(`n%*/FSt&'	0  )as   A)Ni   )r   r6   )Nr   r6   )NNNNr   r6   )__name__
__module____qualname__r   r1   rA   rE   rH   rM   rT   rY   r[   r]   r_   rb   rg   rm   ro   rj   ry   r|   r~   r   r   r   r   r   __classcell__)r   s   @r   r   r      s    /#&000$



 #,8




00$r   r   )	loggingrV   cmf.include
connectionr   	getLoggerr   r$   r    r   r   <module>r      s1       "			8	$g: gr   