146 lines
4.5 KiB
Python
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)
|