
    m(i#=                     t    S SK r S SKrS SKJrJr  S SKrS SKJr  S SKrS SKrS SK	r	S SK
r
S SKr " S S5      rg)    N)base64UrlDecodebase64UrlEncode)	b64decodec                   b    \ rS rSrSrSrSrSrSrSS jr	S	 r
S
 rS rS rS rS rS rS rSrg)boondManager   z,cette class est l'equivalent de celle de Flozhttps://ui.boondmanager.com/apiz76656e646f725f385f31524b3744456f7565574a4c33427138374f566531487934584a6c6f47792b6b5f363530316562616532393030622e6f7474656f199c5db56478f045b285 Nc           
          [        U5       H  n [        R                  " UUUUUUS9s  $    g ! [        R                  R                   a  n	[        SUS-    SU	 35         S n	A	MZ  S n	A	ff = f)N)methodurlheadersdatafilestimeoutz[Tentative    z] Erreur API : )rangerequestsrequest
exceptionsRequestExceptionprint)
selfr   r   r   r   r   r   retriesattemptes
             -/var/www/dossier_candidat/app/BoondManager.pysafe_api_callboondManager.safe_api_call   s|    W~G
E''!##  &  &&77 EGaK=sCDDEs   .A+A&&A+c                 &    Xl         U R                   $ N)baseURL)r   r   s     r   
setBaseURLboondManager.setBaseURL$   s    ||    c                 &    Xl         U R                   $ r"   )	userToken)r   tokens     r   setUserTokenboondManager.setUserToken(   s    ~~r&   c                    UR                  SS5      u  p#[        R                  " [        U5      5      [        R
                  " [        R                  " U R                  5      [        R                  " U 5      [        R                  S9R                  5       :X  a^  [        R                  " 5       R                  [        R                  " [        R                  " U 5      5      R                  S5      5      nU$ SnU$ )N.r   	digestmodutf-8F)splitcodecsdecoder   hmacnewencodeclehashlibsha256	hexdigestjsonJSONDecoderbase64r   )r   signedRequestencodedSignaturepayloads       r   signedRequestDecode boondManager.signedRequestDecode,   s    $1$7$7Q$?! MM/*:;<xxdhh'	+!.. ik !,,.55  '!<=DDWMM  "Mr&   c           
         / nSSS.nUR                  [        U5      5        UR                  [        U5      5        U Vs/ s H  n[        R                  " U5      PM     nnSR	                  [        [        U5      5      n[        R                  " [        R                  " [        R                  " U R                  5      [        R                  " U5      [        R                  S9R                  5       5      R                  5       nUR                  [        R                  " [        R                  " [        R                  " U R                  5      [        R                  " U5      [        R                  S9R                  5       5      R!                  SS5      R!                  SS	5      5        U Vs/ s H  n[        R                  " U5      PM     nnSR	                  [        [        U5      5      $ s  snf s  snf )
NJWTHS256)typalgr-   r.      +   -   /   _)appendr   r2   r3   joinmapstrr=   	b64encoder4   r5   r6   r7   r8   r9   digestreplace)	r   r@   segmentsheaderiLsigning_input	signatureL2s	            r   jwEncodeboondManager.jwEncode?   sd   w//001'/0x!V]]1x0S!-$$HHdhh'm,!.. fh
 &( 	 	MM$((+MM-0%nn &( WT4 WT4 
	
 )111fmmA1xxC%%/ 1, 2s     G32 G8c                    U R                    U R                   [        R                  " [        R                  R                  5       R                  5       5      SS.nSU R                  U5      0n0 nU R                   SU 3nU R                  SXSUS9nUR                  nUS:X  a   [        R                  " UR                  5      $ g)	Nnormalr(   appTokentimemodeX-Jwt-App-Boondmanager/GETr   r   r   r      F)r(   r_   mathfloordatetimenow	timestamprZ   r#   r   status_coder;   loadstext)r   apir@   r   r   url_pathrespstatuss           r   callApiboondManager.callApi^   s     NN+==/JJx00446@@BC	
 ,T]]7-CDll^1SE*!!HTX!Y!!S=::dii((r&   c           	      B  ^ US:X  Gat  [         R                  " U R                  SXSS9R                  5      mUS   TS   S   S'   US	   TS   S   S
'   US   TS   S   S'   US   TS   S   S'   US   TS   S   S   ;  a'  TS   S   S   R	                  U4S jUS    5       5      O
TS   S   S     US   TS   S   S'   TS   S   S==   SUS   -   S-   -  ss'   / nUR                  5        Vs/ s H  nUS;  d  M  UPM     sn H"  nUR                  [        U5      X8   S.5        M$     TS   S   S   R                  UUS   [        R                  R                  5       R                  S5      S.5        GO	US:X  Gac  [         R                  " U R                  SXSS9R                  5      mUS   TS   S   S'   S UR                  5       ;   a  US    TS   S   S!'   S"UR                  5       ;   a  TS   S   S#==   S$US"   -   S-   -  ss'   S%UR                  5       ;   a  US%   TS   S   S&   S''   S(UR                  5       ;   a  US(   TS   S   S&   S)'   TS   S   S#==   S*US+   -   S-   -  ss'   S,UR                  5       ;   a  US-   TS   S   S.'   S/UR                  5       ;   a6  S0UR                  5       ;   a"  US/   TS   S   S1   S''   US0   TS   S   S1   S)'   GOUS2;   a  [         R                  " U R                  SXSS9R                  5      mTS   S   S3	 TS   S   S4	 US5:X  a  UR                  S65      n	U	TS   S   S7'   GO4US8:X  a  UR                  S65      n	U	TS   S   S9'   GOUS::X  a  [         R                  " U R                  SXSS9R                  5      mTS   S   S3	 TS   S   S4	 US;   TS   S   S<'   TS   S   S===   S>US?   -   S-   S@-   USA   -   S-   SB-   USC   -   S-   -  ss'   USD   USE   SF.USG   USH   SF./TS   S   SI'   [        USJ   5      TS   S   SK'   SLUR                  5       ;   a  USL   TS   S   SM'   GO-USN:X  Ga  [         R                  " U R                  SXSS9R                  5      mUSO   SP-   USQ   -   SP-   USR   -   SP-   USS   -   SP-   UST   -   USU'   USV   SP-   USW   -   SP-   USX   -   SP-   USY   -   SP-   USZ   -   US['   USO	 USQ	 USR	 USS	 UST	 USV	 USW	 USX	 USY	 USZ	 TS\	 TS   S]	 S^TS   S   S_'   UR                  5        H7  u  pSU;   a  UR                  SS`5      nTS   S   S_==   SaU
 SbU Sc3-  ss'   M9     TS   S   S_==   Sd-  ss'   OUSe:X  a  SfUSgSh.mT$ [         R                  " T5      $ s  snf )iu=   cette fonction permet de remettre la données au format boondinformationsrd   r   re   Nomr   
attributeslastName   Prénom	firstName   Statut souhaitétypeOf   Disponibilitéavailability	   MobilitémobilityAreasc              3   J   >#    U  H  nUTS    S   S   ;  d  M  Uv   M     g7f)r   rx   r   N ).0xdata_to_posts     r   	<genexpr>,boondManager.modeliseData.<locals>.<genexpr>   s2      G*AL0>OO *s   #	#	   DécisionstateinformationComments
   Commentaires suite à l EC)rw   rz   r~   r   r   Levier de motivationr   r|   )criteria
evaluationevaluationsr   z%Y-%m-%d)	notationscommentsdateadministrativeu   NationaliténationalityzSalaire brut actuelactualSalaryzDetail salaire actueladministrativeCommentsz
Package salarial actuel : salaire_souhaite_mindesiredSalaryminsalaire_souhaite_maxmaxz
Permis de travail : zPermis de travail
tjm_actuel
TJM_actuelactualAverageDailyCostTJM_minTJM_maxdesiredAverageDailyCost)activity_areaexpertise_areadiplomas
referencesr   ,activityAreasr   expertiseAreastechnical_dataTitretitleskillsz

Outils : OutilszEntreprise precedentes : zEntreprise precedentesz
Metiers : MetierszLangue 1zNiveau Langue 1)languagelevelzLangue 2zNiveau Langue 2	languages
Experience
experienceu   Niveau d'étudetrainingactionszReference contact 1z - zReference Societe 1zReference fonction 1zReference telephone 1zReference email 1zReference 1zReference contact 2zReference Societe 2zReference fonction 2zReference telephone 2zReference email 2zReference 2metaidz<table>rn   z<br>z5<tr style='color:white;background-color:#09294c'><td>z@</td><td style='color:black;background-color:white' colspan='3'>z
</td></tr>z</table>	documentscandidateResumeT
parentTypeparentIdparsing)r;   rm   r   rn   extendkeysrL   intri   rj   strftimer1   itemsrR   dumps)r   rp   r   r   key_wordfromIdr   rU   elementdata_biskeyvaluer   s               @r   modeliseDataboondManager.modeliseDataq   s    ~%::"" hb # $L >B%[L .z:>B9oL .{;;?@R;SL .x8AEFVAWL .~>
 k",v*>|*L+ 	  .?FF Gk*G    
   ;?{:KL .w7 ./DEt899D@E I $A	
 $   $'L&*m*  .}=DD!* $%; <$--113<<ZH ))::"" hb # $L
 AE^@TL .}=$		3EI)FV$\2>B '$))+5V$\23KL2234L
 &4MQ*NV$\2?CEJ &4MQ*NV$\2?CEJ  ./GH(40C+DDtKH tyy{*OS PV$\23KL DIIK'I,D O V$\23LM
 O V$\23LM <<::"" hb # $L V$\2:>V$\2<@?*::c?FNV$\2?C--::c?GOV$\23CD))::"" hb # $L V$\2:>V$\2<@:>w-L .w7 .x8x.! .. /0	1
   y/" 
8 "*-=N8OP!*-=N8OP?L .{; @C4CU?VL .|< DIIK/AEFWAXV$\2:>"::"" hb # $L *+,-.  -.	/
  ./0  *+,  *+,-.  -.	/
  ./0  *+,  *+*++,,-()*+*++,,-()V$V$T*9BL .v6"jjl
5=!MM$7EV$\2LSE  RR  SX  RY  Yc  dd 	 +  .v6*D6$/"L
  zz,''[s   2
V Vc                    U R                    U R                   [        R                  " [        R                  R                  5       R                  5       5      SS.nU R                  U5      SS.nU R                   SU 3nUS:X  ah  U R                  XvX#U5      nU R                  SXvSS	9nU R                  S
XvUS	9n	U	R                  n
U
S:X  a   [        R                  " U	R                  5      $ gU R                  XvX#U5      nU R                  S
XvUS	9n	[        U5        U	R                  n
[        U
5        [        U	R                  5        U
S:X  a   [        R                  " U	R                  5      $ g)Nr]   r^   application/jsonrb   zContent-Typerc   rv   rd   r   re   PUTrf   F)r(   r_   rg   rh   ri   rj   rk   rZ   r#   r   r   rl   r;   rm   rn   r   )r   ro   r   r   r   r@   r   rp   respgetrq   rr   s              r   putApiboondManager.putApiA  si    NN+==/JJx00446@@BC	
 '+mmG&<.
 ll^1SE*~%$$XOD(((" ) G %%($ & D %%F }zz$)),, $$XOD%%($ & D $K%%F&M$))}zz$)),,r&   c           	         U R                    U R                   [        R                  " [        R                  R                  5       R                  5       5      SS.nU R                  U5      SS.nU R                   SU 3nUS:X  a  SU R                  U5      0nSUS	S
.nSU[        S[        US5      -   S5      S44/nU R                  SXvXS9n	U	R                  n
[        U	R                  5        U
S:X  a   [        R                   " U	R                  5      $ gU R#                  XvX#U5      nU R                  SXvUS9n	U	R                  n
U
S:X  a   [        R                   " U	R                  5      $ g)Nr]   r^   r   r   rc   r   rb   r   Tr   filez#/var/www/dossier_candidat/app/word/r0   rbzGapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentPOST)r   r   r   r   r   rf   Fre   )r(   r_   rg   rh   ri   rj   rk   rZ   r#   openrO   r   rl   r   rn   r;   rm   r   )r   ro   r   r   r   r@   r   rp   data_mrq   rr   s              r   postApiboondManager.postApio  s    NN+==/JJx00446@@BC	
 '+mmG&<.
 ll^1SE*{"($--*@G 0"F BSwEWWY]^a	D %%86 & D %%F$))}zz$)),, $$XOD%%84 & D %%F}zz$)),,r&   )r#   r(   )NNN
      )__name__
__module____qualname____firstlineno____doc__r#   r_   r7   r(   r   r$   r*   rA   rZ   rs   r   r   r   __static_attributes__r   r&   r   r   r      sL    6/G LH
 CI&&>&N(`,\6r&   r   )r4   r8   formatting_data2r   r   r;   r=   r   r   ri   rg   r2   r   r   r&   r   <module>r      s/      =       X Xr&   