§
    >xÅjÚ  ã                   óÂ  — d dl Z d dlmZ d dlmZmZmZ d dlZd dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZmZmZ d dlmZ d dlmZmZ d dl m!Z!  e j"        e#¦  «        Z$ G d„ de	¦  «        Z%de%deddfd„Z&dedefd„Z'dedefd„Z(dede)dede*ddf
d„Z+dedede*ddfd„Z, ej-        d¦  «         ej-        d¦  «        	 	 	 	 	 d)dee)dz   ej.        d¬¦  «        f         d ee)dz   ej        d!d¬¦  «        f         d"eedz   ej        d#d$¬¦  «        f         dee* ej        d%d&¬¦  «        f         d'e!defd(„¦   «         ¦   «         Z/dS )*é    N)ÚPath)Ú	AnnotatedÚAnyÚNoReturn)Ú	BaseModelÚField)ÚRichToolkit©ÚOption)Ú	cloud_app)Ú	APIClient)Úapps_app)Ú_get_app)Ú	AppConfigÚget_app_configÚwrite_app_config)ÚIdentity)ÚFastAPIRichToolkitÚget_rich_toolkit)ÚJsonOutputOptionc                   óŠ   — e Zd ZU eed<   eed<   eed<   ee ed¬¦  «        f         ed<   ee ed¬¦  «        f         ed<   dS )	Ú
LinkOutputÚapp_idÚteam_idÚpathT)ÚexcludeÚapp_nameÚconfig_pathN)Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__r   r   r   © ó    úUC:\Projects\Historical\venv\Lib\site-packages\fastapi_cloud_cli/commands/apps/link.pyr   r      ss   € € € € € € Ø€K€K�KØ€L€L�LØ
€J€J�JØ˜˜U˜U¨4Ð0Ñ0Ô0Ð0Ô1Ð1Ð1Ñ1Ø˜4  ¨tÐ!4Ñ!4Ô!4Ð4Ô5Ð5Ð5Ñ5Ð5Ð5r%   r   ÚdataÚtoolkitÚreturnc                 ó–   — |                      d| j        › d| j        › d�d¬¦  «         |                      d| j        › d�d¬¦  «         d S )NzLinked [bold]z[/bold] to [bold]z[/bold]F©ÚbulletzConfig: [bold])Úprintr   r   r   )r'   r(   s     r&   Ú_render_link_outputr.      sg   € Ø‡M‚MØJ˜œ	ÐJÐJ°D´MÐJÐJÐJØð ñ ô ð ð ‡M‚MÐ< 4Ô#3Ð<Ð<Ð<ÀU€MÑKÔKÐKÐKÐKr%   c                 ó6   — |                       ddd¬¦  «         d S )NÚnot_logged_inz(You need to be logged in to link an app.z1Run [bold]fastapi cloud login[/] to authenticate.©Úhint©Úfail©r(   s    r&   Ú_fail_not_logged_in_interactiver6   &   s0   € Ø‡L‚LØØ2Ø@ð ñ ô ð ð ð r%   c                 ó6   — |                       ddd¬¦  «         d S )NÚalready_linkedú+This directory is already linked to an app.zMRun [bold]fastapi cloud unlink[/] first to remove the existing configuration.r1   r3   r5   s    r&   Ú _fail_already_linked_interactiver:   .   s0   € Ø‡L‚LØØ5Ø\ð ñ ô ð ð ð r%   r   Úpath_to_linkÚforcec                ó`  — t          |¦  «        r|s|                      ddd¬¦  «         t          ¦   «         5 }|                      dd¬¦  «        5 }|                     |dd	| ¬
¦  «        5  t          ||¦  «        }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          |t          |j        |j	        ¬¦  «        ¦  «         t          |j        |j	        ||j        |dz  dz  ¬¦  «        }|                      |t          ¬¦  «         d S )Nr8   r9   z3Pass --force to replace the existing configuration.r1   zFetching appT)ÚtitleÚ	transientz+Error fetching app. Please try again later.zApp not found.)Údefault_messageÚnot_found_messager(   ©r   r   z.fastapicloudz
cloud.json)r   r   r   r   r   )Úrender_output)r   r4   r   ÚprogressÚhandle_http_errorsr   r   r   Úidr   r   ÚnameÚsuccessr.   )r(   r   r;   r<   ÚclientrD   ÚappÚresults           r&   Ú_link_app_by_idrL   6   s  € õ �lÑ#Ô#ð 
¨Eð 
Ø�ŠØØ9ØFð 	ñ 	
ô 	
ð 	
õ 
‰Œð /˜Ø×ÒØ Øð ñ 
ô 
ð 
	/ð Ø×*Ò*ØØ MØ"2Øð	 +ñ ô ð /ð /õ ˜v vÑ.Ô.�ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð	
	/ð 
	/ð 
	/ñ 
	/ô 
	/ð 
	/ð 
	/ð 
	/ð 
	/ð 
	/ð 
	/øøøð 
	/ð 
	/ð 
	/ð 
	/ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /õ ØÝ˜œ¨¬Ð5Ñ5Ô5ñô ð õ
 ØŒvØ”ØØ”Ø  ?Ñ2°\ÑAðñ ô €Fð ‡O‚O�FÕ*=€OÑ>Ô>Ð>Ð>Ð>sY   ¸B5ÁBÁ*BÁ;BÂBÂBÂBÂBÂB5ÂB"	Â"B5Â%B"	Â&B5Â5B9Â<B9c          	      ó  — t          |¦  «        r|st          | ¦  «         |                      d¦  «         |                      ¦   «          t	          ¦   «         5 }|                      dd¬¦  «        5 }|                     |d¬¦  «        5  |                     d¦  «        }|                     ¦   «          | 	                    ¦   «         d         }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |s+|  
                    d	d
¬¦  «         t          j        d¦  «        ‚|                      dd„ t          |d„ ¬¦  «        D ¦   «         dd
¬¦  «        }|                      ¦   «          |                      dd¬¦  «        5 }|                     |d¬¦  «        5  |                     dd|d         i¬¦  «        }|                     ¦   «          | 	                    ¦   «         d         }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |s|                      ddd¬¦  «         |                      dd„ t          |d„ ¬¦  «        D ¦   «         dd
¬¦  «        }	|                      ¦   «          t!          |	d         |d         ¬¦  «        }
t#          ||
¦  «         |  
                    d |	d!         › d"�d#¬$¦  «         t$                               d%|	d         › d&|d         › �¦  «         d S )'NzLink to FastAPI CloudzFetching teams...T)r?   z-Error fetching teams. Please try again later.)r@   z/teams/r'   z5[error]No teams found. Please create a team first.[/]Fr+   é   zSelect the team:c                 ó\   — g | ])}t          |d          |d         |d          dœdœ¦  «        ‘Œ*S )rG   rF   )rF   rG   ©rG   Úvaluer
   )Ú.0Úts     r&   ú
<listcomp>z+_link_app_interactively.<locals>.<listcomp>€   sL   € ð ð ð àõ   &¤	¸1¸T¼7ÈAÈfÌIÐ4VÐ4VÐWÐWÑXÔXðð ð r%   c                 ó6   — | d                               ¦   «         S )NrG   ©Úlower)rS   s    r&   ú<lambda>z)_link_app_interactively.<locals>.<lambda>‚   s   € ¸!¸F¼)¿/º/Ñ:KÔ:K€ r%   )Úkey)ÚoptionsÚallow_filteringr,   zFetching apps...z,Error fetching apps. Please try again later.z/apps/r   rF   )ÚparamsÚ	not_foundzNo apps found in this team.zFRun [bold]fastapi cloud apps create[/] to create and deploy a new app.r1   zSelect the app to link:c                 ó\   — g | ])}t          |d          |d         |d          dœdœ¦  «        ‘Œ*S )ÚslugrF   )rF   r_   rP   r
   )rR   Úas     r&   rT   z+_link_app_interactively.<locals>.<listcomp>œ   sL   € ð 
ð 
ð 
àõ ˜A˜fœI°q¸´wÈÈ&Ì	Ð0RÐ0RÐSÐSÑTÔTð
ð 
ð 
r%   c                 ó6   — | d                               ¦   «         S )Nr_   rV   )r`   s    r&   rX   z)_link_app_interactively.<locals>.<lambda>ž   s   € °Q°v´Y·_²_Ñ5FÔ5F€ r%   rB   z!Successfully linked to app [bold]r_   z[/bold]!u   ðŸ”—)ÚemojizLinked to app: z
 in team: )r   r:   Úprint_titleÚ
print_liner   rD   rE   ÚgetÚraise_for_statusÚjsonr-   ÚtyperÚExitÚaskÚsortedr4   r   r   ÚloggerÚdebug)r(   r;   r<   rI   rD   ÚresponseÚ
teams_dataÚteamÚ	apps_datarJ   Ú
app_configs              r&   Ú_link_app_interactivelyrs   a   s¬  € õ �lÑ#Ô#ð 2¨Eð 2Ý(¨Ñ1Ô1Ð1à×ÒÐ/Ñ0Ô0Ð0Ø×ÒÑÔÐå	‰Œð $4˜Ø×ÒÐ1¸TÐÑBÔBð 	5ÀhØ×*Ò*ØØ Oð +ñ ô ð 5ð 5ð "Ÿ:š: iÑ0Ô0�Ø×)Ò)Ñ+Ô+Ð+Ø%Ÿ]š]™_œ_¨VÔ4�
ð5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð ð 	 Ø�MŠMØGØð ñ ô ð õ ”*˜Q‘-”-Ðà�{Š{Øðð å 
Ð0KÐ0KÐLÑLÔLðñ ô ð !Øð ñ 
ô 
ˆð 	×ÒÑÔÐà×ÒÐ0¸DÐÑAÔAð 	4ÀXØ×*Ò*ØØ Nð +ñ ô ð 4ð 4ð "Ÿ:š: h¸	À4ÈÄ:Ð7N˜:ÑOÔO�Ø×)Ò)Ñ+Ô+Ð+Ø$ŸMšM™OœO¨FÔ3�	ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð;$4ð $4ð $4ñ $4ô $4ð $4ð $4ð $4ð $4ð $4ð $4øøøð $4ð $4ð $4ð $4ðL ð 
Ø�ŠØØ)ØYð 	ñ 	
ô 	
ð 	
ð �+Š+Ø!ð
ð 
å˜IÐ+FÐ+FÐGÑGÔGð
ñ 
ô 
ð Øð ñ ô €Cð ×ÒÑÔÐå # d¤)°T¸$´ZÐ@Ñ@Ô@€JÝ�\ :Ñ.Ô.Ð.à‡M‚MØA¨C°¬KÐAÐAÐAØð ñ ô ð õ ‡L‚LÐD 3 t¤9ÐDÐD¸¸T¼
ÐDÐDÑEÔEÐEÐEÐEs¥   ÁH%Á0C/ÂACÃC/ÃCÃC/ÃCÃ C/Ã#H%Ã/C3	Ã3H%Ã6C3	Ã7BH%ÆHÆAG7Ç+HÇ7G;Ç;HÇ>G;Ç?HÈH%ÈH	ÈH%ÈH	ÈH%È%H)È,H)ÚlinkFzID of the app to link.)ÚhelpÚapp_id_optionz--app-idr   z--pathzDirectory to link.z--forcez,Replace an existing local app configuration.Újson_outputc                 ó  — t          ¦   «         }|pt          j        ¦   «         }|p| }t          |¬¦  «        5 }|                     ¦   «         s+|€|st          |¦  «         |                     ddd¬¦  «         | � |�| |k    r|                     ddd	¬¦  «         |€:|r|                     d
dd¬¦  «         t          |||¬¦  «         	 ddd¦  «         dS t          ||||¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zB
    Link a local directory to an existing FastAPI Cloud app.
    )rw   Nr0   zNo credentials found.zRun `fastapi cloud login`.r1   Úinvalid_inputz#App ID was provided more than once.z)Pass either APP_ID or --app-id, not both.Úmissing_required_inputzApp ID is required.zPass an app ID to link an app.)r;   r<   )r   r;   r<   )	r   r   Úcwdr   Úis_logged_inr6   r4   rs   rL   )	r   rv   r   r<   rw   Úidentityr;   Útarget_app_idr(   s	            r&   Úlink_appr   °   sÐ  € õF ‰zŒz€HØÐ%�4œ8™:œ:€LØ!Ð+ V€Må	 kÐ	2Ñ	2Ô	2ð &
°gØ×$Ò$Ñ&Ô&ð 	ØÐ$¨[Ð$Ý/°Ñ8Ô8Ð8à�LŠLØØ'Ø1ð ñ ô ð ð Ð -Ð";ÀÈ-Ò@WÐ@WØ�LŠLØØ5Ø@ð ñ ô ð ð Ð Øð Ø—’Ø,Ø)Ø9ð ñ ô ð õ $ØØ)Øðñ ô ð ð
 ð?&
ð &
ð &
ñ &
ô &
ð &
ð &
ð &
õB 	ØØ Ø%Øð		
ñ 	
ô 	
ð 	
ðC&
ð &
ð &
ñ &
ô &
ð &
ð &
ð &
ð &
ð &
ð &
ð &
øøøð &
ð &
ð &
ð &
ð &
ð &
s   ¸BC6ÃC6Ã6C:Ã=C:)NNNFF)0ÚloggingÚpathlibr   Útypingr   r   r   rh   Úpydanticr   r   Úrich_toolkitr	   Úrich_toolkit.menur   Úfastapi_cloud_cli._appr   Úfastapi_cloud_cli.apir   Ú$fastapi_cloud_cli.commands.apps._appr   Ú$fastapi_cloud_cli.commands.apps.listr   Úfastapi_cloud_cli.utils.appsr   r   r   Úfastapi_cloud_cli.utils.authr   Úfastapi_cloud_cli.utils.clir   r   Ú!fastapi_cloud_cli.utils.executionr   Ú	getLoggerr   rl   r   r.   r6   r:   r"   ÚboolrL   rs   ÚcommandÚArgumentr   r$   r%   r&   ú<module>r’      sÇ  ðØ €€€Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +à €€€Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ø $Ð $Ð $Ð $Ð $Ð $Ø $Ð $Ð $Ð $Ð $Ð $à ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø +Ð +Ð +Ð +Ð +Ð +Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TØ 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ >Ð >Ð >Ð >Ð >Ð >à	ˆÔ	˜8Ñ	$Ô	$€ð6ð 6ð 6ð 6ð 6�ñ 6ô 6ð 6ðL˜jð L°;ð LÀ4ð Lð Lð Lð LðÐ-?ð ÀHð ð ð ð ðÐ.@ð ÀXð ð ð ð ð(?Øð(?ð ð(?ð ð	(?ð
 ð(?ð 
ð(?ð (?ð (?ð (?ðVLFØðLFð ðLFð ð	LFð
 
ðLFð LFð LFð LFð^ €Ô�6ÑÔØ€Ô�&ÑÔð 	ð 	ð 	ð 	Ø$)ð9K
ð K
ØØˆd‰
ØˆŒØ)ð	
ñ 	
ô 	
ð	ôðK
ð Øˆd‰
ØˆŒØØ)ð	
ñ 	
ô 	
ð	ôðK
ð Øˆt‰ØˆŒØØ%ð	
ñ 	
ô 	
ð	ôðK
ð* ØØˆŒØØ?ð	
ñ 	
ô 	
ð	ôð+K
ð8 "ð9K
ð: 	ð;K
ð K
ð K
ñ Ôñ ÔðK
ð K
ð K
r%   