
    -$j                         d dl mZmZmZmZ h dZdedz  defdZdedz  defdZdedz  defdZ	d	edz  defd
Z
d ZdS )    )	parse_qsl	urlencodeurlsplit
urlunsplit>   keysigtoken	signatureaccess_tokenupload_tokenclient_secretrefresh_tokenvalueNreturnc                     | rdndS N
[REDACTED]  r   s    K/home/agent/projects/AutoShorts_Dashboard/backend/app/security/redaction.pyredact_tokenr           (<<b(    c                     | rdndS r   r   r   s    r   redact_client_secretr   
   r   r   c                 `    | sdS |                                                      d          rdS dS )Nr   zbearer zBearer [REDACTED]r   )lower
startswithr   s    r   redact_authorization_headerr       s8     r{{}}	** #""<r   urlc                 Z   | sdS t          |           }g }t          |j        d          D ]9\  }}|                    ||                                t
          v rdn|f           :d                    d |D                       }t          |j        |j	        |j
        ||j        f          S )Nr   T)keep_blank_valuesr   &c              3   *   K   | ]\  }}| d | V  dS )=Nr   ).0r   r   s      r   	<genexpr>z$redact_upload_url.<locals>.<genexpr>   s4      GG:3..u..GGGGGGr   )r   r   queryappendr   SECRET_KEYSjoinr   schemenetlocpathfragment)r!   partsr)   r   r   redacted_querys         r   redact_upload_urlr3      s     rSMMEEtDDD S S
Uc399;;++E+E<<5QRRRRXXGGGGGGGNu|U\5:~u~^___r   c                    t          | t                    ri }|                                 D ]\  }}|                                t          v s,d|                                v sd|                                v rd||<   Rd|                                v r t          t          |                    ||<   t          |          ||<   |S t          | t                    rd | D             S | S )Nr	   secretr   
upload_urlc                 ,    g | ]}t          |          S r   )redact_json)r'   items     r   
<listcomp>zredact_json.<locals>.<listcomp>-   s     333dD!!333r   )	
isinstancedictitemsr   r+   r3   strr8   list)dataoutr   r   s       r   r8   r8   !   s    $ 	**,, 	. 	.JCyy{{k))W		-C-CxSVS\S\S^S^G^G^'C,,,SZZ88C&u--C
$ 433d3333Kr   )urllib.parser   r   r   r   r+   r>   r   r   r    r3   r8   r   r   r   <module>rC      s    C C C C C C C C C C C Cttt)d
 )s ) ) ) ))d
 )s ) ) ) )sTz c    `3: `# ` ` ` `    r   