
    ih                     r    d dl Z d dl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Z G d de      Zy)    N)ListOptional)Document)get_from_envstringify_dict)
BaseLoaderz https://api.iugu.com/v1/invoicesz!https://api.iugu.com/v1/customerszhttps://api.iugu.com/v1/chargesz%https://api.iugu.com/v1/subscriptionszhttps://api.iugu.com/v1/plans)invoices	customerschargessubscriptionsplansc                   f    e Zd ZdZdd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)
IuguLoaderzLoad from `IUGU`.Nresource	api_tokenreturnc                 J    || _         |xs t        dd      }dd| i| _        y)zInitialize the IUGU resource.

        Args:
            resource: The name of the resource to fetch.
            api_token: The IUGU API token to use.
        r   IUGU_API_TOKENAuthorizationzBearer N)r   r   headers)selfr   r   s      g/var/www/html/dev/engine/venv/lib/python3.12/site-packages/langchain_community/document_loaders/iugu.py__init__zIuguLoader.__init__   s0     !Lk;K!L	'79+)>?    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readdecoder   r   )r   r   r!   response	json_datatextr   s          r   _make_requestzIuguLoader._make_request!   s    ..((dll(C^^##G, 	D

8==?#9#9#;<I!),D #H$BC		D 	D 	Ds   AB##B,c                 j    t         j                  | j                        }|g S | j                  |      S N)IUGU_ENDPOINTSgetr   r+   )r   endpoints     r   _get_resourcezIuguLoader._get_resource*   s2    !%%dmm4I!!(++r   c                 "    | j                         S r-   )r1   )r   s    r   loadzIuguLoader.load0   s    !!##r   r-   )__name__
__module____qualname____doc__strr   r   r   r   r+   r1   r3    r   r   r   r      sa    	@ 	@# 	@$ 	@D Dh D,tH~ ,$d8n $r   r   )r$   urllib.requestr    typingr   r   langchain_core.documentsr   langchain_core.utilsr   r   )langchain_community.document_loaders.baser   r.   r   r9   r   r   <module>r?      s;      ! - = @ 340<,$ $r   