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

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)