
    4df:                        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	m
Z
mZmZmZ ddlmZmZ  e
       Z edd	gd
ddii      Zej'                  d      dededefd       Zej-                  d      dedefd       Zej-                  d      dedefd       Zej3                  d      dededefd       Zej7                  d      dedefd       Zy)    N)	APIRouterRequest)JSONResponse   )#regenerate_interventions_for_client)MONGODB_DATABASEmongodb_connectcheck_accessget_user_sub	get_roles)Pool
UpdatePoolz/poolspools  descriptionz	Not found)prefixtags	responsesz/{client_sub}request
client_subpoolc                 h  K   	 | j                   d   j                  dd      }t        |dg       t        |      }t        t
           d   j                  d|iddd	      }|sd
dd| dd}t        |d      S t        t        j                               }|j                         }||d<   ||d<   ||d<   t        t
           d   j                  |       t        |       d{    ddd|d}t        |d      S 7 # t        $ r)}	d
ddt        |	       d}t        |d      cY d}	~	S d}	~	ww xY ww)zCreate a new pool.authorizationBearer  seeclientssubr      _idr   error
CreatePoolzClient '' n'existe passtatusendpointmessager   contentstatus_coder   created_by_subr   Nsuccessu   Piscine créé avec succès.)r&   r'   r(   r      z.Error lors de l'enregistrement de la piscine:   )headersreplacer
   r   mongodb_clientr   find_oner   struuiduuid4
model_dump
insert_oner   	Exception)
r   r   r   
auth_tokenmy_user_subclient_cursorresponseObjectr   	pool_dictes
             OC:\Users\ChattiNader\Documents\EpsilonGroupe\api-vastappli\app\routers\pools.pycreate_poolrA      s]    )E___5==iL
Z%)":.&'78CLLJa 

 !(%j\@N
  CHH$**,OO%		%",	,&1	"#'(1<<YG1*===  $5	
 NDD 	>  E$GAxP

 NDDEsT   D2A4C= 8D29A)C= "C;#C= :D2;C= =	D/D*$D/%D2*D//D2c           
      Z  K   	 | j                   d   j                  dd      }t        |dg       t        t           d   j                  d|iddddddd	      }d
ddt        |      d}t        |d      S # t        $ r)}dddt        |       d}t        |d      cY d}~S d}~ww xY ww)zGet all pools.r   r   r   *r   r   r   r   )r!   r   photor   gpsr   r-   GetPoolListu)   Liste de piscine récupéré avec succèsr&   r'   r(   r*   r.   r)   r"   u.   Error lors de la récupération des piscines: r%   r/   N)
r0   r1   r
   r2   r   findlistr   r9   r4   )r   r   r:   r   r=   r?   s         r@   get_pool_listrJ   B   s     E___5==iL
Z#'/09>>:&a!AaWXY

  %BE{	
 NDD E%GAxP

 NDDEs5   B+A1A6 5B+6	B(?B#B(B+#B((B+z/pool/{sub}r   c                 x  K   	 | j                   d   j                  dd      }t        |dg       t        t           d   j                  d|iddi      }|sd	d
d| dd}t        |d      S dd
d| d|d}t        |d      S # t        $ r)}d	d
dt        |       d}t        |d      cY d}~S d}~ww xY ww)zGet a pool by its sub.r   r   r   rC   r   r   r!   r   r"   GetPool	Piscine 'r$   r%   r   r)   r-   u   ' récupéré avec succèsrG   r.   u/   Error lors de la récupération de la piscine: r/   N)	r0   r1   r
   r2   r   r3   r   r9   r4   )r   r   r:   r   r=   r?   s         r@   get_poolrN   ]   s     E___5==iL
Z#'./8AACLAJ

 !%&se>:N
  CHH  !"3%'AB	
 NDD E!HQQ

 NDDEsA   B:A(B ,B:-B B:	B7B2,B7-B:2B77B:c                   K   	 | j                   d   j                  dd      }t        |dg       t        t           d   j                  d|iddi      }|j                         }|sd	d
d| dd}t        |d      S t        t           d   j                  d|id|i       dd
d| dd}t        |d      S # t        $ r)}d	ddt        |       d}t        |d      cY d}~S d}~ww xY ww)zupdate a pool by its sub.r   r   r   r   r   r   r!   r   r"   r   rM   r$   r%   r   r)   z$setr-   u   ' mis à jour avec succèsr.   UpdatePiscineu-   Error lors de la mise à jour de la piscine: r/   N)r0   r1   r
   r2   r   r3   r7   r   
update_oner9   r4   )r   r   r   r:   pool_cursorr>   r=   r?   s           r@   update_poolrS      s#    #E___5==iL
Z%)$%56w?HHCLAJ

 OO%	!(&se>:N
  CHH'(1<<CLY	
  $"3%'AB

 NDD E'Fs1vhO

 NDDEsA   C-A8B8 <C-=:B8 7C-8	C*C%C* C-%C**C-c                   K   	 | j                   d   j                  dd      }t        |dg       t        t           d   j                  d|iddd	      }|sd
dd| dd}t        |d      S t        t           d   j                  d|i      }|sd
ddd}t        |d      S ddd| dd}t        |d      S # t        $ r)}d
ddt        |       d}t        |d      cY d}~S d}~ww xY ww)zDelete a pool by its sub.r   r   r   r   r   r   r   r   r    r"   
DeletePoolrM   r$   r%   r   r)   u4   Vous n'avez pas le droit d'accès à cette ressourcei  r-   u   ' supprimée avec succèsr.   Deletez,Error lors de la suppression de la piscine: r/   N)
r0   r1   r
   r2   r   r3   r   
delete_oner9   r4   )r   r   r:   rR   r=   resultr?   s          r@   delete_poolrY      s6    )E___5==iL
Z%)$%56w?HHCLa 

 !(&se>:N
  CHH 01':EECL
 !(QN
  CHH  $"3%'@A

 NDD E Ec!fXN

 NDDEsM   C0A)B; -C0.5B; #C0$B; :C0;	C-C("C-#C0(C--C0)r5   fastapir   r   fastapi.responsesr   	schedulerr   utilsr   r	   r
   r   r   models.poolsr   r   r2   routerpostr4   rA   getrJ   rN   patchrS   deleterY        r@   <module>rf      s?    & * ; \ \ + "	
]K01
 _+Ew +EC +Et +E +E\ OE Ec E E4 MEG E# E ED m%Ew %ES %E
 %E %EP }+Ew +ES +E +Ere   