
    c*                     |    d dl Z d dlZd dlmZmZ d dlZd dlmZ d dlZd dlZd dl	Z	d dl
Z
d dlZ G d d          ZdS )    N)base64UrlDecodebase64UrlEncode)	b64decodec                   R    e Zd ZdZdZdZdZdZd Zd Z	d Z
d	 Zd
 Zd Zd Zd ZdS )boondManagerz- cette class est l'equivalent de celle de Flozhttps://ui.boondmanager.com/apiڐ76656e646f725f333236325f774b5951675976554448684c7a78415574706f5a7952664f7732684e34644b465f363363393133363539373564612e6f7474656f5f73616e64626f78b6a6f2729d71c06c071a c                     || _         | j         S N)baseURL)selfurls     =C:\Users\Projet\final_api_otteo\api_otteo\app\BoondManager.py
setBaseURLzboondManager.setBaseURL   s    |    c                     || _         | j         S r   )	userToken)r   tokens     r   setUserTokenzboondManager.setUserToken   s    ~r   c                    |                     dd          \  }}t          j        t          |                    t	          j        t          j        | j                  t          j        |           t          j	                  
                                k    r_t          j                                        t          j        t          j        |                                         d                    }nd}|S )N.   	digestmodzutf-8F)splitcodecsdecoder   hmacnewencodeclehashlibsha256	hexdigestjsonJSONDecoderbase64r   )r   signedRequestencodedSignaturepayloads       r   signedRequestDecodez boondManager.signedRequestDecode   s    $1$7$7A$>$>!'M/*:;;<<W[W_I`I`@FQXl@[@[=D^AM AM AMMVY[[Y 	" "-//66(.(8'|9T9T(U(U(\(\]d(e(e* *MM "Mr   c           
         g }ddd}|                     t          |                     |                     t          |                     d |D             }d                    t          t          |                    }t          j        t          j        t          j
        | j                  t          j
        |          t          j                                                                                            }|                     t          j        t          j        t          j
        | j                  t          j
        |          t          j                                                                                dd                              d	d
                     d |D             }d                    t          t          |                    S )NJWTHS256)typalgc                 6    g | ]}t          j        |          S  r   r   .0is     r   
<listcomp>z)boondManager.jwEncode.<locals>.<listcomp><   s"    000!V]1000r   r   r      +   -   /   _c                 6    g | ]}t          j        |          S r3   r4   r5   s     r   r8   z)boondManager.jwEncode.<locals>.<listcomp>J   s"    1111fmA111r   )appendr   joinmapstrr(   	b64encoder   r    r   r!   r"   r#   r$   digestr   replace)r   r+   segmentsheaderLsigning_input	signatureL2s           r   jwEncodezboondManager.jwEncode1   s   11((	 	 	 	#W--	 	 	 10x000S!--$$(HV]48-D-D$*M-$@$@.5n%> %> %>>Dfhh& & '-fhh	 	 	TXfmDH&=&=$*M-$@$@.5n> > >>DfhhH HHOQUW[H\H\]d]dfjlp]q]q	
 	
 	
 21111xxC$$$r   c                 r   | j          | j         t          j        t          j                                                                                  dd}d|                     |          i}i }| j         d| }t          j
        d|||          }|j        }|dk    rt          j        |j                  S dS )	Nnormalr   appTokentimemodeX-Jwt-App-Boondmanager/GETmethodr   headersdata   F)r   rO   mathfloordatetimenow	timestamprK   r   requestsrequeststatus_coder&   loadstext)r   apir+   rW   rX   url_pathrespstatuss           r   callApizboondManager.callApiM   s     !%0#}.
8#4#8#8#:#:#D#D#F#FGG 	
 
 %dmmG&<&<
 l**S**',$,(/%)	" " " !S= 	:di(((5r   c           	      P   |dk    r$t          j        t          j        d||d          j                  }|d         |d         d         d<   |d	         |d         d         d
<   |d         |d         d         d<   g }d |                                D             D ]-}|                    t          |          ||         d           .|d         d         d         d                             |dt          j	        
                                                    d          d           n|dk    rt          j        t          j        d||d          j                  }|d         |d         d         d<   |d         |d         d         d<   |d         |d         d         d         d<   |d         |d         d         d         d<   nI|dk    s|dv rt          j        t          j        d||d          j                  }|dk    rB|                                D ],\  }	}
|d         d         d                             |
           -n|d k    rB|                                D ],\  }	}
|d         d         d!                             |
           -n||d         d         d"<   nn|d#k    rhdt          d$          dd%d&dt          |          d'd(iid)i}|                                D ](\  }	}
|d         d         d*xx         d+|	 d,|
 d-z  cc<   )t          j        |          S ).u=   cette fonction permet de remettre la données au format boondinformationsrT   r
   rU   nomrX   
attributeslastNameprenom	firstNamedate_naissancedateOfBirthc                     g | ]}|d v|	S ))rk   rn   rp   r3   r5   s     r   r8   z-boondManager.modeliseData.<locals>.<listcomp>|   s#    ccc!a?b6bcAcccr   )criteria
evaluationevaluationsr   z%Y-%m-%d)	notationscommentsdateadministrativenationalitysalaire_brut_actuelactualSalarysalaire_souhaite_mindesiredSalaryminsalaire_souhaite_maxmaxztechnical-data)activity_areaexpertise_arear   activityAreasr   expertiseAreasskillsactions   )typeOfrc   	dependsOn	candidate)idtype)rl   relationshipsrc   z<h4 style='color:darkblue;'>z</h4> : z <br>)r&   rb   r_   r`   rc   keysr>   intupdater\   r]   strftimeitemsdumps)r   re   rW   rX   key_wordfromIddata_to_postrv   elementkeyvalues              r   modeliseDatazboondManager.modeliseDatah   s    ~% [	w:$,$4+0(0,3)+	%& %& %&
 '+" "L >B%[L .z:>B8nL .{;@DEU@VL .}=Icctyy{{ccc    $'LL&*7m      .}=a@GG!%))++44Z@@I I     )) <	w:$,$4+0(0,3)+	%& %& %&
 '+" "L AE]@SL .}=AEF[A\L .~>IMNdIeL .?FIMNdIeL .?FF)) -	wX9\-\ -	w:$,$4+0(0,3)+	%& %& %&
 '+" "L ?* D"&**,,  JC (6GNN    -- D"&**,,  JC (67GHOO    @DV$\28<<" 	w !$R"$" " $"%([['2$ $%% L$ #jjll w w
UV$\26:::>v]`>v>vjo>v>v>vv:::: z,'''r   c                    | j          | j         t          j        t          j                                                                                  dd}|                     |          dd}| j         d| }|dk    r| 	                    |||||          }t          j        d||d	          }t          j        |j                  }	|	d
         d         d         }
t          |
           t          j        |          }|d
         d         d                             |
           t          j        |          }t          j        d|||	          }|j        }|dk    rt          j        |j                  S dS | 	                    |||||          }t          j        d|||	          }|j        }t          |           t          |j                   |dk    rt          j        |j                  S dS )NrM   rN   application/jsonrR   zContent-TyperS   rj   rT   r
   rU   rX   rl   ru   PUTrY   F)r   rO   rZ   r[   r\   r]   r^   rK   r   r   r_   r`   r&   rb   rc   printr>   r   ra   )r   rd   rX   r   r   r+   rW   re   respgetdataTest
Evaluationdata_Tdata_prf   rg   s                  r   putApizboondManager.putApi   s    !%0#}.
8#4#8#8#:#:#D#D#F#FGG 	
 
 '+mmG&<&<.
 
 l**S**~% 1	$$XwhOOD&+0(0,3)+	& & &G z',//H!&),7FJ*Z%%F6N<(7>>zJJJZ''F#+0(0,3)-	& & &D %F } z$),,,u $$XgtXvNND#+0(0,3)-	& & &D %F&MMM$)} z$),,,ur   c                    | j          | j         t          j        t          j                                                                                  dd}|                     |          dd}|                     |||||          }| j	         d| }t          j        d|||          }|j        }	|	dk    rt          j        |j                  S d	S )
NrM   rN   r   r   rS   POSTrU   rY   F)r   rO   rZ   r[   r\   r]   r^   rK   r   r   r_   r`   ra   r&   rb   rc   )
r   rd   rX   r   r   r+   rW   re   rf   rg   s
             r   postApizboondManager.postApi  s     !%0#}.
8#4#8#8#:#:#D#D#F#FGG 	
 
 '+mmG&<&<.
 
   '46JJl**S**'-$,(/%)	" " " !S= 	:di(((5r   N)__name__
__module____qualname____doc__r   rO   r"   r   r   r   r,   rK   rh   r   r   r   r3   r   r   r   r      s        77/G bHCI    
  $% % %8  6b( b( b(H@ @ @F    r   r   )r   r#   formatting_data2r   r   r&   r(   r   r_   r\   rZ   r   r   r3   r   r   <module>r      s      = = = = = = = =            ] ] ] ] ] ] ] ] ] ]r   