
    oh                     &   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	 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 d d
lmZ  e j.                  e      Z G d de	      Z G d de	      ZdedefdZdededefdZdedededdfdZ  ejB                         Z"e"jG                         	 ddeeedf    ejH                  d      f   defd       Z%e"jG                          ejH                  dd      dfdeedf   deeedf    ejH                  d      f   defd       Z&e"jG                          ejH                  dd       ejH                  dd      dfdeedf   deedf   deeedf    ejH                  d      f   defd       Z'y)     N)Path)AnyListUnion)	BaseModel)	Annotated)	APIClient)get_app_config)is_logged_in)get_rich_toolkithandle_http_errors)"validate_environment_variable_namec                   "    e Zd ZU eed<   eed<   y)EnvironmentVariablenamevalueN)__name__
__module____qualname__str__annotations__     p/var/www/pru.catia.catastroantioquia-mas.com/tasa/lib/python3.12/site-packages/fastapi_cloud_cli/commands/env.pyr   r      s    
IJr   r   c                       e Zd ZU ee   ed<   y)EnvironmentVariableResponsedataN)r   r   r   r   r   r   r   r   r   r   r      s    
"
##r   r   app_idreturnc                     t               5 }|j                  d|  d      }|j                          t        j	                  |j                               cd d d        S # 1 sw Y   y xY w)N/apps//environment-variables/)r	   getraise_for_statusr   model_validatejson)r   clientresponses      r   _get_environment_variablesr)      sZ    	 K::vh.EFG!!#*99(--/J	K K Ks   AAA&r   c                     t               5 }|j                  d|  d|       }d d d        j                  dk(  ry|j                          y# 1 sw Y   *xY w)Nr!   r"   i  FT)r	   deletestatus_coder$   )r   r   r'   r(   s       r   _delete_environment_variabler-   #   s`    	 Q==6&1H!OPQ s"Q Qs   AAr   c                     t               5 }|j                  d|  d||i      }|j                          d d d        y # 1 sw Y   y xY w)Nr!   r"   )r&   )r	   patchr$   )r   r   r   r'   r(   s        r   _set_environment_variabler0   /   sS    	 $<<VH34   
 	!!#$ $ $s	   *>Apathz:A path to the folder containing the app you want to deploy)helpc                    t        d      5 }t               s(|j                  dd       t        j                  d      | xs t        j                         }t        |      }|s*|j                  d| d       t        j                  d      |j                  d	d
      5 }t        |      5  t        |j                        }ddd       ddd       j                  s|j                  d       	 ddd       y|j                  d       |j                          |j                  D ]!  }|j                  d|j                   d       # 	 ddd       y# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   yxY w)z5
    List the environment variables for the app.
    Tminimal<No credentials found. Use [blue]`fastapi login`[/] to login.authtag   !No app found in the folder [bold][/].!Fetching environment variables...	transientNNo environment variables found.zEnvironment variables:z[bold]z[/])r   r   printtyperExitr   cwdr
   progressr   r)   r   r   
print_liner   )r1   toolkitapp_path
app_configrE   environment_variablesenv_vars          r   listrL   ;   sn    
$	' !67~MMN  
 **Q-%488:#H-
MM3H:TB **Q-/4  
 	V#H- V(B:CTCT(U%V	V %))MM;<7!6 !6: 	./,11 	6GMMF7<<.45	6A!6 !6,V V	V 	V'!6 !6sC   BE."E".EE"&E.;AE.EE""E+	'E..E7z.The name of the environment variable to deletec           
         t        d      5 }t               s(|j                  dd       t        j                  d      |xs t        j                         }t        |      }|s*|j                  d| d       t        j                  d      | s|j                  d	d
      5 }t        |      5  t        |j                        }ddd       ddd       j                  s|j                  d       	 ddd       y|j                  d|j                  D cg c]  }|j                  |j                  d c}      } | sGJ t        |       s*|j                  d|  d       t        j                  d      |j!                          |j                  dd
      5 }t        |      5  t#        |j                  |       }ddd       ddd       s&|j                  d       t        j                  d      |j                  d|  d       ddd       y# 1 sw Y   PxY w# 1 sw Y   UxY wc c}w # 1 sw Y   vxY w# 1 sw Y   zxY w# 1 sw Y   yxY w)z6
    Delete an environment variable from the app.
    Tr4   r6   r7   r8   r:   r;   r<   r=   r>   Nr@   z*Select the environment variable to delete:)r   r   )optionsz$The environment variable name [bold]z[/] is invalid.zDeleting environment variablezEnvironment variable not found.Environment variable [bold]z[/] deleted.)r   r   rA   rB   rC   r   rD   r
   rE   r   r)   r   r   askr   r   rF   r-   )	r   r1   rG   path_to_deployrI   rE   rJ   rK   deleteds	            r   r+   r+   l   sV   " 
$	' =H7~MMN  
 **Q-+#N3
MM3N3C4H **Q-!!3t "  '1 ,F"))-) )--?@?=H =HB ;;< $9#=#= %\\GLLA  D K45d;:4&P jjm# +t  
 	P#H- P6z7H7H$OP	P MM;<**Q-3D6FG{=H =H0  &P P	P 	Pg=H =Hs   BI$H!0HH!&I=I H.7A$IH?'H3>H?AIHH!!H+	&I3H<8H??I	IIz+The name of the environment variable to setz,The value of the environment variable to setc                    t        d      5 }t               s(|j                  dd       t        j                  d      |xs t        j                         }t        |      }|s*|j                  d| d       t        j                  d      | s|j                  d	      } |s|j                  d
d      }|j                  dd      5 }| J |J t        |      5  t        |j                  | |       ddd       ddd       |j                  d|  d       ddd       y# 1 sw Y   /xY w# 1 sw Y   3xY w# 1 sw Y   yxY w)z2
    Set an environment variable for the app.
    Tr4   r6   r7   r8   r:   r;   r<   z2Enter the name of the environment variable to set:z3Enter the value of the environment variable to set:)passwordzSetting environment variabler>   NrO   z[/] set.)r   r   rA   rB   rC   r   rD   r
   inputrE   r   r0   r   )r   r   r1   rG   rQ   rI   rE   s          r   setrV      sh   * 
$	' $D7~MMN  
 **Q-+#N3
MM3N3C4H **Q-==!UVDMMEPT " E *d  
 	J###$$$#H- J)**;*;T5IJ	J 	3D6BCI$D $DBJ J	J 	J7$D $Ds<   B=D<
D0D$6D0>D<$D-)D00D9	5D<<E)N)(loggingpathlibr   typingr   r   r   rB   pydanticr   typing_extensionsr   fastapi_cloud_cli.utils.apir	   fastapi_cloud_cli.utils.appsr
   fastapi_cloud_cli.utils.authr   fastapi_cloud_cli.utils.clir   r   fastapi_cloud_cli.utils.envr   	getLoggerr   loggerr   r   r   r)   boolr-   r0   Typerenv_appcommandArgumentrL   r+   rV   r   r   r   <module>rh      sH     # #   ' 1 7 5 L J			8	$) 
$) $Ks K/J K	 	C 	D 	$c $ $S $T $ %++- 	 	-6
dDjM	
	-6 	-6 -6` 	+U^^= 	MH
T	
MH
 dDjM	
	MH 	MH MH` 	+U^^: -enn; 	8D
T	
8D
 d8D dDjM	
	8D 	8D 8Dr   