U
    1CÞgÂ	  ã                   @   s,   d dl mZ ddlmZ G dd„ deƒZdS )é   )ÚResourceé   )ÚURLc                       s†   e Zd Zd‡ fdd„	Zi f‡ fdd„	Zi fdd„Zi fdd	„Zi f‡ fd
d„	Zi fdd„Zi fdd„Z	i fdd„Z
i fdd„Z‡  ZS )ÚCustomerNc                    s"   t t| ƒ |¡ tjtj | _d S )N)Úsuperr   Ú__init__r   ZV1ZCUSTOMER_URLÚbase_url)ÚselfÚclient©Ú	__class__© ú?/tmp/pip-unpacked-wheel-7vse0p6g/razorpay/resources/customer.pyr      s    zCustomer.__init__c                    s   t t| ƒj||f|ŽS )zÆ
        Fetch Customer for given Id

        Args:
            customer_id : Id for which customer object has to be retrieved

        Returns:
            Order dict for given customer Id
        )r   r   Úfetch)r	   Úcustomer_idÚdataÚkwargsr   r   r   r   
   s    
zCustomer.fetchc                 K   s   | j }| j||f|ŽS )zo
        Create Customer from given dict

        Returns:
            Customer Dict which was created
        ©r   Zpost_url©r	   r   r   Úurlr   r   r   Úcreate   s    zCustomer.createc                 K   s   d  | j|¡}| j||f|ŽS )zx
        Edit Customer information from given dict

        Returns:
            Customer Dict which was edited
        z{}/{})Úformatr   Zput_url©r	   r   r   r   r   r   r   r   Úedit    s    zCustomer.editc                    s   t t| ƒj|f|ŽS )z_
        Fetch all customer

        Returns:
            Dictionary of Customers data
        )r   r   Úall)r	   r   r   r   r   r   r   +   s    zCustomer.allc                 K   s"   | j › d|› d�}| j||f|ŽS )zi
        Add Bank Account of Customer

        Returns:
            Dictionary of Customers data
        ú/z/bank_accountr   r   r   r   r   ÚaddBankAccount4   s    zCustomer.addBankAccountc                 K   s&   | j › d|› d|› �}| j||f|ŽS )zl
        Delete Bank Account of Customer

        Returns:
            Dictionary of Customers data
        r   z/bank_account/)r   Z
delete_url)r	   r   Zbank_idr   r   r   r   r   r   ÚdeleteBankAccount>   s    zCustomer.deleteBankAccountc                 K   s   | j › d�}| j||f|ŽS )z`
        Eligibility Check

        Returns:
            Dictionary of eligibility data
        z/eligibilityr   r   r   r   r   ÚrequestEligibilityCheckH   s    z Customer.requestEligibilityCheckc                 K   s    | j › d|› �}| j||f|ŽS )zq
        Fetch Eligibility by id

        Returns:
            Eligibility dict for given eligibility Id
        z/eligibility/)r   Úget_url)r	   Zeligibility_idr   r   r   r   r   r   ÚfetchEligibilityR   s    zCustomer.fetchEligibility)N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r    Ú__classcell__r   r   r   r   r      s   
	


r   N)Úbaser   Zconstants.urlr   r   r   r   r   r   Ú<module>   s   