
    Ng                         d dl Z d dlZd dlmZ d dlmZmZ d dlm	Z	 d dl
mZmZ d dlmZ ddd	d
ddddddddddZ G d de          ZdS )    N)	b64encode)ListOptional)Document)get_from_envstringify_value)
BaseLoaderz1https://app.moderntreasury.com/api/payment_ordersz4https://app.moderntreasury.com/api/expected_paymentsz*https://app.moderntreasury.com/api/returnsz;https://app.moderntreasury.com/api/incoming_payment_detailsz1https://app.moderntreasury.com/api/counterpartiesz4https://app.moderntreasury.com/api/internal_accountsz4https://app.moderntreasury.com/api/external_accountsz/https://app.moderntreasury.com/api/transactionsz*https://app.moderntreasury.com/api/ledgersz2https://app.moderntreasury.com/api/ledger_accountsz6https://app.moderntreasury.com/api/ledger_transactionsz)https://app.moderntreasury.com/api/eventsz+https://app.moderntreasury.com/api/invoices)payment_ordersexpected_paymentsreturnsincoming_payment_detailscounterpartiesinternal_accountsexternal_accountstransactionsledgersledger_accountsledger_transactionseventsinvoicesc            	           e Zd ZdZ	 	 ddedee         dee         ddfdZdedee         fd	Z	dee         fd
Z
dee         fdZdS )ModernTreasuryLoaderzLoad from `Modern Treasury`.Nresourceorganization_idapi_keyreturnc                     || _         |pt          dd          }|pt          dd          }| d|                     d          }t          |                              d          }dd| i| _        d	S )
a  

        Args:
            resource: The Modern Treasury resource to load.
            organization_id: The Modern Treasury organization ID. It can also be
               specified via the environment variable
               "MODERN_TREASURY_ORGANIZATION_ID".
            api_key: The Modern Treasury API key. It can also be specified via
               the environment variable "MODERN_TREASURY_API_KEY".
        r   MODERN_TREASURY_ORGANIZATION_IDr   MODERN_TREASURY_API_KEY:zutf-8AuthorizationzBasic N)r   r   encoder   decodeheaders)selfr   r   r   credentialsbasic_auth_tokens         p/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/document_loaders/modern_treasury.py__init__zModernTreasuryLoader.__init__    s      !) 
\@.
 .
 O\)5NOO(44744;;GDD$[1188AA')D2B)D)DE    urlc                 z   t           j                            || j                  }t           j                            |          5 }t          j        |                                                                          }t          |          }d|i}t          ||          gcd d d            S # 1 swxY w Y   d S )N)r$   source)page_contentmetadata)urllibrequestRequestr$   urlopenjsonloadsreadr#   r   r   )r%   r+   r1   response	json_datatextr/   s          r(   _make_requestz"ModernTreasuryLoader._make_request9   s    .((dl(CC^##G,, 	D
8==??#9#9#;#;<<I"9--D #H$BBBC		D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	Ds   AB00B47B4c                 r    t                               | j                  }|g S |                     |          S N)MODERN_TREASURY_ENDPOINTSgetr   r:   )r%   endpoints     r(   _get_resourcez"ModernTreasuryLoader._get_resourceB   s6    ,00??I!!(+++r*   c                 *    |                                  S r<   )r@   )r%   s    r(   loadzModernTreasuryLoader.loadH   s    !!###r*   )NN)__name__
__module____qualname____doc__strr   r)   r   r   r:   r@   rB    r*   r(   r   r      s        &&
 *.!%	F FF "#F #	F
 
F F F F2D Dh D D D D,tH~ , , , ,$d8n $ $ $ $ $ $r*   r   )r4   urllib.requestr0   base64r   typingr   r   langchain_core.documentsr   langchain_core.utilsr   r   )langchain_community.document_loaders.baser	   r=   r   rH   r*   r(   <module>rO      s               ! ! ! ! ! ! ! ! - - - - - - > > > > > > > > @ @ @ @ @ @ JO;!IOOE;KS9=  $,$ ,$ ,$ ,$ ,$: ,$ ,$ ,$ ,$ ,$r*   