102 lines
3.1 KiB
Python
102 lines
3.1 KiB
Python
from .base import Resource
|
|
from ..constants.url import URL
|
|
|
|
|
|
class Token(Resource):
|
|
def __init__(self, client=None):
|
|
super(Token, self).__init__(client)
|
|
self.base_url = URL.V1 + URL.CUSTOMER_URL
|
|
|
|
def create(self, data={}, **kwargs):
|
|
"""
|
|
Create token from given dict
|
|
|
|
Returns:
|
|
token Dict which was created
|
|
"""
|
|
url = '{}{}'.format(URL.V1, URL.TOKEN)
|
|
|
|
return self.post_url(url, data, **kwargs)
|
|
|
|
def fetch(self, customer_id, token_id, data={}, **kwargs):
|
|
"""
|
|
Fetch Token for given Id and given customer Id
|
|
|
|
Args:
|
|
customer_id : Customer Id for which tokens have to be fetched
|
|
token_id : Id for which TOken object has to be fetched
|
|
|
|
Returns:
|
|
Token dict for given token Id
|
|
"""
|
|
url = "{}/{}/tokens/{}".format(self.base_url, customer_id, token_id)
|
|
return self.get_url(url, data, **kwargs)
|
|
|
|
def all(self, customer_id, data={}, **kwargs):
|
|
"""
|
|
Get all tokens for given customer Id
|
|
|
|
Args:
|
|
customer_id : Customer Id for which tokens have to be fetched
|
|
|
|
Returns:
|
|
Token dicts for given cutomer Id
|
|
"""
|
|
url = "{}/{}/tokens".format(self.base_url, customer_id)
|
|
return self.get_url(url, data, **kwargs)
|
|
|
|
def delete(self, customer_id, token_id, data={}, **kwargs):
|
|
"""
|
|
Delete Given Token For a Customer
|
|
|
|
Args:
|
|
customer_id : Customer Id for which tokens have to be deleted
|
|
token_id : Id for which TOken object has to be deleted
|
|
Returns:
|
|
Dict for deleted token
|
|
"""
|
|
url = "{}/{}/tokens/{}".format(self.base_url, customer_id, token_id)
|
|
return self.delete_url(url, data, **kwargs)
|
|
|
|
def fetchToken(self, data={}, **kwargs):
|
|
"""
|
|
fetch Given Token For a Customer
|
|
|
|
Returns:
|
|
Dict for fetch token
|
|
"""
|
|
url = '{}{}/{}'.format(URL.V1, URL.TOKEN, "fetch")
|
|
return self.post_url(url, data, **kwargs)
|
|
|
|
def deleteToken(self, data={}, **kwargs):
|
|
"""
|
|
Delete Given Token
|
|
|
|
Returns:
|
|
Dict for deleted token
|
|
"""
|
|
url = '{}{}/{}'.format(URL.V1, URL.TOKEN, "delete")
|
|
return self.post_url(url, data, **kwargs)
|
|
|
|
def processPaymentOnAlternatePAorPG(self, data={}, **kwargs):
|
|
"""
|
|
Process a Payment on another PA/PG with Token Created on Razorpay
|
|
|
|
Returns:
|
|
|
|
"""
|
|
url = '{}{}/{}'.format(URL.V1, URL.TOKEN, "service_provider_tokens/token_transactional_data")
|
|
return self.post_url(url, data, **kwargs)
|
|
|
|
def cancel(self, customer_id, token_id, data={}, **kwargs):
|
|
"""
|
|
Cancel Given Token
|
|
|
|
Args:
|
|
customer_id : Customer Id for which token have to be cancelled
|
|
token_id : Id for which Token object has to be cancelled
|
|
Returns:
|
|
Dict for cancel token
|
|
"""
|
|
url = f"{self.base_url}/{customer_id}/tokens/{token_id}/cancel"
|
|
return self.put_url(url, data, **kwargs)
|