ifixkart-backend/venv/lib/python3.12/site-packages/razorpay/resources/subscription.py

146 lines
4.5 KiB
Python

from .base import Resource
from ..constants.url import URL
class Subscription(Resource):
def __init__(self, client=None):
super(Subscription, self).__init__(client)
self.base_url = URL.V1 + URL.SUBSCRIPTION_URL
def all(self, data={}, **kwargs):
"""
Fetch all Subscription entities
Returns:
Dictionary of Subscription data
"""
return super(Subscription, self).all(data, **kwargs)
def fetch(self, subscription_id, data={}, **kwargs):
"""
Fetch Subscription for given Id
Args:
subscription_id : Id for which subscription object is retrieved
Returns:
Subscription dict for given subscription Id
"""
return super(Subscription, self).fetch(subscription_id, data, **kwargs)
def create(self, data={}, **kwargs):
"""
Create Subscription from given dict
Args:
data : Dictionary using which Subscription has to be created
Returns:
Subscription Dict which was created
"""
url = self.base_url
return self.post_url(url, data, **kwargs)
def cancel(self, subscription_id, data={}, **kwargs):
"""
Cancel subscription given by subscription_id
Args:
subscription_id : Id for which subscription has to be cancelled
Returns:
Subscription Dict for given subscription id
"""
url = "{}/{}/cancel".format(self.base_url, subscription_id)
return self.post_url(url, data, **kwargs)
def cancel_scheduled_changes(self, subscription_id, data={}, **kwargs):
"""
Cancel a update
Args:
subscription_id : Id for which subscription has to be cancelled
Returns:
Subscription Dict for given subscription id
"""
url = "{}/{}/cancel_scheduled_changes".format(self.base_url, subscription_id)
return self.post_url(url, data, **kwargs)
def createAddon(self, subscription_id, data={}, **kwargs):
"""
Create addon for given subscription
Args:
subscription_id : Id for which addon has to be created
Return:
Subscription dict for given subscription id
"""
url = "{}/{}/addons".format(self.base_url, subscription_id)
return self.post_url(url, data, **kwargs)
def edit(self, subscription_id, data={}, **kwargs):
"""
Update particular subscription
Args:
subscription_id : Id for which subscription has to be edited
Returns:
Subscription dict for given subscription id
"""
url = '{}/{}'.format(self.base_url, subscription_id)
return self.patch_url(url, data, **kwargs)
def pending_update(self, subscription_id, **kwargs):
"""
Fetch Subscription for given Id
Args:
subscription_id : Id for which subscription object is retrieved
Returns:
Subscription dict for given subscription Id
"""
url = '{}/{}/retrieve_scheduled_changes'.format(self.base_url, subscription_id)
return self.get_url(url, {}, **kwargs)
def pause(self, subscription_id, data={}, **kwargs):
"""
Cancel subscription given by subscription_id
Args:
subscription_id : Id for which subscription has to be paused
Returns:
Subscription Dict for given subscription id
"""
url = "{}/{}/pause".format(self.base_url, subscription_id)
return self.post_url(url, data, **kwargs)
def resume(self, subscription_id, data={}, **kwargs):
"""
Cancel subscription given by subscription_id
Args:
subscription_id : Id for which subscription has to be resume
Returns:
Subscription Dict for given subscription id
"""
url = "{}/{}/resume".format(self.base_url, subscription_id)
return self.post_url(url, data, **kwargs)
def delete_offer(self, subscription_id, offer_id, data={}, **kwargs):
"""
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
"""
url = "{}/{}/{}".format(self.base_url, subscription_id, offer_id)
return self.delete_url(url, data, **kwargs)