U
    ^g%i	  ã                   @   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‡ fdd„	Zi fdd	„Zi fd
d„Zi fdd„Zi fdd„Z	i fdd„Z
dd„ Zi fdd„Zi fdd„Zi fdd„Z‡  ZS )ÚSubscriptionNc                    s"   t t| ƒ |¡ tjtj | _d S )N)Úsuperr   Ú__init__r   ZV1ZSUBSCRIPTION_URLÚbase_url)ÚselfÚclient©Ú	__class__© ú^/var/www/html/api-medvista/venv/lib/python3.8/site-packages/razorpay/resources/subscription.pyr      s    zSubscription.__init__c                    s   t t| ƒj|f|ŽS )zo
        Fetch all Subscription entities

        Returns:
            Dictionary of Subscription data
        )r   r   Úall)r	   ÚdataÚkwargsr   r   r   r   
   s    zSubscription.allc                    s   t t| ƒj||f|ŽS )úÖ
        Fetch Subscription for given Id

        Args:
            subscription_id : Id for which subscription object is retrieved

        Returns:
            Subscription dict for given subscription Id
        )r   r   Úfetch)r	   Úsubscription_idr   r   r   r   r   r      s    
zSubscription.fetchc                 K   s   | j }| j||f|ŽS )zÏ
        Create Subscription from given dict

        Args:
            data : Dictionary using which Subscription has to be created

        Returns:
            Subscription Dict which was created
        )r   Úpost_url)r	   r   r   Úurlr   r   r   Úcreate   s    
zSubscription.createc                 K   s   d  | j|¡}| j||f|ŽS )zã
        Cancel subscription given by subscription_id

        Args:
            subscription_id : Id for which subscription has to be cancelled

        Returns:
            Subscription Dict for given subscription id
        z{}/{}/cancel©Úformatr   r   ©r	   r   r   r   r   r   r   r   Úcancel,   s    
zSubscription.cancelc                 K   s   d  | j|¡}| j||f|ŽS )zÆ
        Cancel a update

        Args:
            subscription_id : Id for which subscription has to be cancelled

        Returns:
            Subscription Dict for given subscription id
        z{}/{}/cancel_scheduled_changesr   r   r   r   r   Úcancel_scheduled_changes9   s    
z%Subscription.cancel_scheduled_changesc                 K   s   d  | j|¡}| j||f|ŽS )zÐ
        Create addon for given subscription

        Args:
            subscription_id : Id for which addon has to be created

        Return:
            Subscription dict for given subscription id
        z{}/{}/addonsr   r   r   r   r   ÚcreateAddonF   s    
zSubscription.createAddonc                 K   s   d  | j|¡}| j||f|ŽS )zÛ
         Update particular subscription

        Args:
            subscription_id : Id for which subscription has to be edited         
        Returns:
            Subscription dict for given subscription id
        z{}/{})r   r   Z	patch_urlr   r   r   r   ÚeditS   s    	zSubscription.editc                 K   s   d  | j|¡}| j|i f|ŽS )r   z {}/{}/retrieve_scheduled_changes)r   r   Úget_url)r	   r   r   r   r   r   r   Úpending_update_   s    
zSubscription.pending_updatec                 K   s   d  | j|¡}| j||f|ŽS )zà
        Cancel subscription given by subscription_id

        Args:
            subscription_id : Id for which subscription has to be paused

        Returns:
            Subscription Dict for given subscription id
        z{}/{}/pauser   r   r   r   r   Úpausel   s    
zSubscription.pausec                 K   s   d  | j|¡}| j||f|ŽS )zà
        Cancel subscription given by subscription_id

        Args:
            subscription_id : Id for which subscription has to be resume

        Returns:
            Subscription Dict for given subscription id
        z{}/{}/resumer   r   r   r   r   Úresumey   s    
zSubscription.resumec                 K   s    d  | j||¡}| j||f|ŽS )a'  
        Delete offer linked to a subscription

        Args:
            subscription_id : The id of the subscription to offer need to be deleted
            offer_id : The id of the offer linked to subscription

        Returns:
            Subscription Dict for given subscription id
        z{}/{}/{})r   r   Z
delete_url)r	   r   Zoffer_idr   r   r   r   r   r   Údelete_offer†   s    zSubscription.delete_offer)N)Ú__name__Ú
__module__Ú__qualname__r   r   r   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   