
    h                         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y)    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            	       t    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y)ModernTreasuryLoaderzLoad from `Modern Treasury`.Nresourceorganization_idapi_keyreturnc                     || _         |xs t        dd      }|xs t        dd      }| d| j                  d      }t        |      j	                  d      }dd| i| _        y	)
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         r/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/langchain_community/document_loaders/modern_treasury.py__init__zModernTreasuryLoader.__init__    s}      !) 
\@.
 O\)5NO()7)4;;GD$[188A'62B1C)DE    urlc                 ^   t         j                  j                  || j                        }t         j                  j	                  |      5 }t        j                  |j                         j                               }t        |      }d|i}t        ||      gcd d d        S # 1 sw Y   y xY w)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    ..((dll(C^^##G, 	D

8==?#9#9#;<I"9-D #H$BC		D 	D 	Ds   AB##B,c                 j    t         j                  | j                        }|g S | j                  |      S N)MODERN_TREASURY_ENDPOINTSgetr   r:   )r%   endpoints     r(   _get_resourcez"ModernTreasuryLoader._get_resourceB   s2    ,00?I!!(++r*   c                 "    | j                         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2D Dh 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      sZ       ! - > @ JO;!IOOE;KS9= $,$: ,$r*   