
    љi                         S SK r S SKJrJrJr  S SKJrJrJr  S SK	J
r
Jr  SSKJr  \ R                  " \5      r " S S\
5      r " S	 S
\
5      r " S S\
5      r " S S5      rg)    N)DictAnyList)	APIRouterHTTPExceptionstatus)	BaseModelField   )Adapterc                   ,    \ rS rSrSr " S S5      rSrg)AdapterConfig
   zWDynamic config model that only contains fields returned by each adapter's get_config().c                       \ rS rSrSrSrg)AdapterConfig.Config   allow N)__name__
__module____qualname____firstlineno__extra__static_attributes__r       W/home/james-whalen/.local/lib/python3.13/site-packages/aiavatar/admin/config/adapter.pyConfigr      s    r   r   r   N)r   r   r   r   __doc__r   r   r   r   r   r   r   
   s    a r   r   c                   X    \ rS rSr% \" SS9r\\S'   \" SS9r\\S'   \" SS9r	\
\S'   S	rg
)AdapterConfigResponse   zName of the adapterdescriptionnamezType of adapter componenttype"Configuration of adapter componentconfigr   N)r   r   r   r   r
   r$   str__annotations__r%   r'   r   r   r   r   r   r    r       sB    )D#  /D#  "8FM r   r    c                   ,    \ rS rSr% \" SS9r\\S'   Srg)UpdateAdapterConfigRequest   r&   r"   r'   r   N)	r   r   r   r   r
   r'   r   r)   r   r   r   r   r+   r+      s    !8FM r   r+   c                   2    \ rS rSrS\\\4   4S jrS rSr	g)AdapterConfigAPI#   adaptersc                     Xl         g )Nr0   )selfr0   s     r   __init__AdapterConfigAPI.__init__$   s	     !r   c                   ^  [        5       nUR                  SS/SSSSS0SS0S	.S
9S[        [           4U 4S jj5       nUR                  SS/SSSSS0SS0SS0S.S
9S[        S[        4U 4S jj5       nUR                  SS/SSSSS0SS0SS0S.S
9S[        S[        S[        [        [        4   4U 4S jj5       nU$ )Nz/config/adaptersr   zList all adapter configurationszGRetrieve the current configuration settings for all registered adapterszList of adapter configurationsr#   z-Successfully retrieved adapter configurationszInternal server error)     )tagssummaryr#   response_description	responsesreturnc                  d  >#     TR                   R                  5        V Vs/ s H;  u  p[        U UR                  R                  [        S0 UR                  5       D6S9PM=     snn $ s  snn f ! [         a5  n[        R                  SU 35        [        [        R                  SS9eS nAff = f7f)Nr$   r%   r'   z)Error retrieving adapter configurations: z=Internal server error while retrieving adapter configurationsstatus_codedetailr   )r0   itemsr    	__class__r   r   
get_config	Exceptionloggererrorr   r   HTTP_500_INTERNAL_SERVER_ERRORr$   adapterexr3   s      r   get_config_adapters8AdapterConfigAPI.get_router.<locals>.get_config_adapters-   s      *.)<)<)> *? *!$..77,Dw/A/A/CD
 *?    HMN# & E EZ s:   B0A. AA($A. 'B0(A. .
B-80B((B--B0z/config/adapter/{name}zGet adapter configurationzBRetrieve the current configuration settings for a specific adapterzCurrent adapter configurationz,Successfully retrieved adapter configurationzAdapter not found)r7   i  r8   r$   c           
        >#     TR                   R                  U 5      nUc  [        [        R                  SU  S3S9e[        U UR                  R                  [        S0 UR                  5       D6S9$ ! [         a    e [         a5  n[        R                  SU 35        [        [        R                  SS9eS nAff = f7f)N	Adapter '' not foundr@   r?   z(Error retrieving adapter configuration: z<Internal server error while retrieving adapter configurationr   )r0   getr   r   HTTP_404_NOT_FOUNDr    rD   r   r   rE   rF   rG   rH   rI   rJ   s      r   get_config_adapter7AdapterConfigAPI.get_router.<locals>.get_config_adapterJ   s     --++D1?'$*$=$=!*4&< 
 - **33(@7+=+=+?@  !  GtLM# & E EY s)   CA/A5 4C5B>	0B99B>>CzUpdate adapter configurationz[Update configuration settings for a specific adapter. Only non-null values will be updated.z;Dictionary of successfully updated configuration parametersz*Successfully updated adapter configurationrequestc                 l  >#     TR                   R                  U 5      nUc  [        [        R                  SU  S3S9eUR                  UR                  R                  5       5      $ ! [         a    e [         a5  n[        R                  SU 35        [        [        R                  SS9eS nAff = f7f)NrP   rQ   r@   z&Error updating adapter configuration: z:Internal server error while updating adapter configuration)r0   rR   r   r   rS   
set_configr'   
model_dumprF   rG   rH   rI   )r$   rV   rK   rL   r3   s       r   post_config_adapter8AdapterConfigAPI.get_router.<locals>.post_config_adaptern   s     --++D1?'$*$=$=!*4&< 
 ))'..*C*C*EFF   EbTJK# & E EW s)   B4A"A( 'B4(B1<0B,,B11B4)	r   rR   r   r    r(   postr+   r   r   )r3   routerrM   rT   rZ   s   `    r   
get_routerAdapterConfigAPI.get_router*   s>   	5a!A#%TU#%<= 
 


	40E+F 	


	$ 
$/\!@#%ST#%89#%<= 
 

	3 	3H 	

	0 
$2u!^#%QR#%89#%<= 
 

	C 	:T 	Y]^acf^fYg 	

	( r   r2   N)
r   r   r   r   r   r(   r   r4   r^   r   r   r   r   r.   r.   #   s    !sG|$!dr   r.   )loggingtypingr   r   r   fastapir   r   r   pydanticr	   r
   adapter.baser   	getLoggerr   rG   r   r    r+   r.   r   r   r   <module>rf      sZ     " " 4 4 % #			8	$I 	I 	 k kr   