
    j[&                         d dl Z d dlmZ ddlmZ ddlmZm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  e j2                  e j4                  d      Z G d d      Z G d d      Zy)    N)JSONDecodeError   )ApiError)AsyncClientWrapperSyncClientWrapper)AsyncHttpResponseHttpResponse)parse_obj_as)RequestOptions)ForbiddenError)UnauthorizedError)AuthDetailsHolder)ErrorMessage)WorkspaceNameHolder.c                       e Zd ZdefdZdddedej                  e   de	d   fdZ
dddej                  e   de	e   fd	Zy)
RawCheckClientclient_wrapperc                    || _         y N_client_wrapperselfr   s     w/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/opik/rest_api/check/raw_client.py__init__zRawCheckClient.__init__   
    -    Nrequest_optionsrequestr   returnc                   | j                   j                  j                  dd|ddi|t              }	 d|j                  cxk  rdk  rn nt        |d	      S |j                  d
k(  rt        t        |j                        t        j                  t        j                  t        j                     t        t        j                  t        j                     |j                                           |j                  dk(  rUt        t        |j                        t        j                  t         t        t         |j                                           |j                         }t%        |j                  t        |j                        |      # t"        $ r6 t%        |j                  t        |j                        |j&                        w xY w)a  
        Check user access to workspace

        Parameters
        ----------
        request : AuthDetailsHolder

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[None]
        v1/private/authPOSTcontent-typeapplication/jsonmethodjsonheadersr   omit   ,  Nresponsedata  type_object_r*   body  status_coder*   r6   )r   httpx_clientr    OMITr9   r	   r   dictr*   typingcastOptionalAnyr
   r)   r   r   r   r   textr   r    r   	_response_response_jsons        r   accesszRawCheckClient.access   s   " ((55== 2 , > 	
		ti++1c1#YTBB$$+' !2!23

3$"(//&**"=$-NN$4	 	 $$+$ !2!23$$".$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   $F DF ?Gc                   | j                   j                  j                  dd|      }	 d|j                  cxk  rdk  rGn nDt	        j
                  t        t        t        |j                                     }t        ||      S |j                  dk(  rt        t        |j                        t	        j
                  t        j                  t        j                     t        t        j                  t        j                     |j                                     	      |j                  d
k(  rUt        t        |j                        t	        j
                  t         t        t         |j                                     	      |j                         }t%        |j                  t        |j                        |      # t"        $ r6 t%        |j                  t        |j                        |j&                        w xY w)a+  
        User's default workspace name

        Parameters
        ----------
        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        HttpResponse[WorkspaceNameHolder]
            Authentication resource
        v1/private/auth/workspaceGETr(   r   r,   r-   r2   r.   r1   r5   r7   r8   )r   r:   r    r9   r=   r>   r   r
   r)   r	   r   r<   r*   r?   r@   r   r   r   r   rA   r   r   rC   _datarD   s        r   get_workspace_namez!RawCheckClient.get_workspace_nameR   s     ((55=='+ > 
	
"	ti++1c1' 1 ) 0 $YUCC$$+' !2!23

3$"(//&**"=$-NN$4	 	 $$+$ !2!23$$".$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   AF? DF? ??G>)__name__
__module____qualname__r   r   r   r=   r?   r   r	   rE   r   rL    r   r   r   r      st    .*; . ae7p+7p>Doon>]7p	d	7pt EI8p"(//."A8p	)	*8pr   r   c                       e Zd ZdefdZdddedej                  e   de	d   fdZ
dddej                  e   de	e   fd	Zy)
AsyncRawCheckClientr   c                    || _         y r   r   r   s     r   r   zAsyncRawCheckClient.__init__   r   r   Nr   r    r   r!   c                  K   | j                   j                  j                  dd|ddi|t               d{   }	 d|j                  cxk  rdk  rn nt        |d	      S |j                  d
k(  rt        t        |j                        t        j                  t        j                  t        j                     t        t        j                  t        j                     |j                                           |j                  dk(  rUt        t        |j                        t        j                  t         t        t         |j                                           |j                         }t%        |j                  t        |j                        |      7 d# t"        $ r6 t%        |j                  t        |j                        |j&                        w xY ww)a#  
        Check user access to workspace

        Parameters
        ----------
        request : AuthDetailsHolder

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[None]
        r#   r$   r%   r&   r'   Nr,   r-   r.   r1   r2   r5   r7   r8   )r   r:   r    r;   r9   r   r   r<   r*   r=   r>   r?   r@   r
   r)   r   r   r   r   rA   rB   s        r   rE   zAsyncRawCheckClient.access   s    " ..;;CC 2 , D 	
 	
		ti++1c1()$GG$$+' !2!23

3$"(//&**"=$-NN$4	 	 $$+$ !2!23$$".$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`nooM	
H  	ty'<'<d9K\K\F]dmdrdrss	ts3   5G FG $F !G "DF 0,G ?GG c                   K   | j                   j                  j                  dd|       d{   }	 d|j                  cxk  rdk  rGn nDt	        j
                  t        t        t        |j                                     }t        ||      S |j                  d	k(  rt        t        |j                        t	        j
                  t        j                  t        j                     t        t        j                  t        j                     |j                                     
      |j                  dk(  rUt        t        |j                        t	        j
                  t         t        t         |j                                     
      |j                         }t%        |j                  t        |j                        |      7 # t"        $ r6 t%        |j                  t        |j                        |j&                        w xY ww)a0  
        User's default workspace name

        Parameters
        ----------
        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        AsyncHttpResponse[WorkspaceNameHolder]
            Authentication resource
        rG   rH   rI   Nr,   r-   r2   r.   r1   r5   r7   r8   )r   r:   r    r9   r=   r>   r   r
   r)   r   r   r<   r*   r?   r@   r   r   r   r   rA   rJ   s        r   rL   z&AsyncRawCheckClient.get_workspace_name   s      ..;;CC'+ D 
 
	
"	ti++1c1' 1 ) 0 ))%HH$$+' !2!23

3$"(//&**"=$-NN$4	 	 $$+$ !2!23$$".$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`nooQ
L  	ty'<'<d9K\K\F]dmdrdrss	ts4   ,HG	HAG HDG ,H?HH)rM   rN   rO   r   r   r   r=   r?   r   r   rE   r   rL   rP   r   r   rR   rR      st    .*< . ae7p+7p>Doon>]7p	4	 7pt EI8p"(//."A8p	.	/8pr   rR   )r=   json.decoderr   core.api_errorr   core.client_wrapperr   r   core.http_responser   r	   core.pydantic_utilitiesr
   core.request_optionsr   errors.forbidden_errorr   errors.unauthorized_errorr   types.auth_details_holderr   types.error_messager   types.workspace_name_holderr   r>   r@   r;   r   rR   rP   r   r   <module>ra      s`     ( % G @ 2 1 3 9 9 . = v{{6::s#up uppup upr   