
    Di                        d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	  ed       G d	 d
             Z
ddZddZddZy)zy
Payrix (Worldpay Payrix Pro) configuration helpers.

Env-driven configuration sourced from global application settings.
    )annotationsN)	dataclass)Dict)settingsT)frozenc                  @    e Zd ZU ded<   ded<   ded<   ded<   ded<   y)	PayrixConfigstrbase_urlauth_header_name
str | Noneauth_header_valuewebhook_header_namewebhook_header_valueN)__name__
__module____qualname____annotations__     T/var/www/html/hwPaymentPortal-be-dev/hw-payment-portal-api/src/core/payrix/config.pyr	   r	      s    M!!##$$r   r	   c                    t         j                  rt         j                  j                         nd} | r| S t         j                  rt         j                  j                         nd}t         j                  rt         j                  j                         nd}|r?|r=t        j                  | d| j                  d            j                  d      }d| S t         j                  rt         j                  j                         nd}|rd| S y )N :zutf-8zBasic zBearer )
r   PAYRIX_AUTH_HEADER_VALUEstripPAYRIX_API_KEYPAYRIX_API_SECRETbase64	b64encodeencodedecodePAYRIX_AUTH_TOKEN)overridekeysecretb64tokens        r   _compute_auth_header_valuer)      s    <D<]<]x00668ceH .6-D-D(
!
!
'
'
)"C3;3M3MX''--/SUF
v#ax077@AHHQu~ 3;2L2LH&&,,.RTE  r   c                     t        t        j                  j                  d      t        j                  xs dt               t        j                  xs dt        j                  xs d       S )N/AuthorizationzX-Payrix-Webhook-Secret)r   r   r   r   r   )r	   r   PAYRIX_BASE_URLrstripPAYRIX_AUTH_HEADER_NAMEr)   PAYRIX_WEBHOOK_HEADER_NAMEPAYRIX_WEBHOOK_HEADER_VALUEr   r   r   get_payrix_configr2   -   sT    ))005!99L_46%@@]D]&BBJd r   c                    t               } ddd}| j                  rH| j                  j                         dk(  r+t        j                  xs dj                         }|r||d<   |S | j                  r| j                  || j                  <   |S )Nzapplication/json)AcceptzContent-TypeAPIKEYr   )r2   r   upperr   r   r   r   )cfgheadersapi_keys      r   get_auth_headersr:   7   s    

C);M_`G  4 4 : : < H--3::< 'GH (+(=(=$$%Nr   )returnr   )r;   r	   )r;   zDict[str, str])__doc__
__future__r   r   dataclassesr   typingr   src.core.configr   r	   r)   r2   r:   r   r   r   <module>rA      sH   
 #  !  $ $% % %*r   