60 lines
1.6 KiB
Python
60 lines
1.6 KiB
Python
from django.http import request
|
|
from azbankgateways.banks import BaseBank
|
|
from azbankgateways.models import BankType
|
|
from azbankgateways.bankfactories import BankFactory as BaseBankFactory
|
|
|
|
|
|
class BankFactory(BaseBankFactory):
|
|
def create(
|
|
self,
|
|
request: request,
|
|
amount: int,
|
|
callback_url : str,
|
|
mobile_number: str = None,
|
|
bank_type: BankType = None,
|
|
identifier: str = "1",
|
|
) -> BaseBank:
|
|
bank = super().create(bank_type, identifier)
|
|
|
|
bank = self.set_payment_info(
|
|
bank=bank,
|
|
request=request,
|
|
amount=amount,
|
|
callback_url=callback_url,
|
|
mobile_number=mobile_number,
|
|
)
|
|
return bank
|
|
|
|
def auto_create(
|
|
self,
|
|
request: request,
|
|
amount: int,
|
|
callback_url : str,
|
|
mobile_number: str = None,
|
|
identifier: str = "1",
|
|
) -> BaseBank:
|
|
|
|
bank = super().auto_create(identifier, amount)
|
|
|
|
bank = self.set_payment_info(
|
|
bank=bank,
|
|
request=request,
|
|
amount=amount,
|
|
callback_url=callback_url,
|
|
mobile_number=mobile_number,
|
|
)
|
|
return bank
|
|
|
|
def set_payment_info(
|
|
self,
|
|
bank: BaseBank,
|
|
request: request,
|
|
amount: int,
|
|
callback_url : str,
|
|
mobile_number: str = None,
|
|
):
|
|
bank.set_request(request=request)
|
|
bank.set_amount(amount=amount)
|
|
bank.set_client_callback_url(callback_url=callback_url)
|
|
bank.set_mobile_number(mobile_number=mobile_number)
|
|
return bank |