iranian bank gateway added to apps

schedule job for updeing bank status and az iranian bank gateway admin style
This commit is contained in:
Parsa Nazer
2025-03-18 18:18:09 +03:30
parent 062001ef0e
commit 5cbe093400
52 changed files with 3008 additions and 34 deletions
@@ -0,0 +1,2 @@
from .bases import Reader # noqa
from .defaults import DefaultReader # noqa
+40
View File
@@ -0,0 +1,40 @@
import abc
import six
from azbankgateways import default_settings as settings
from azbankgateways.models import BankType
@six.add_metaclass(abc.ABCMeta)
class Reader:
@abc.abstractmethod
def read(self, bank_type: BankType, identifier: str) -> dict:
"""
:param bank_type:
:param identifier:
:return:
base on bank type for example for BMI:
{
'MERCHANT_CODE': '<YOUR INFO>',
'TERMINAL_CODE': '<YOUR INFO>',
'SECRET_KEY': '<YOUR INFO>',
}
"""
pass
def klass(self, bank_type: BankType, identifier: str) -> dict:
return settings.BANK_CLASS[bank_type]
@abc.abstractmethod
def get_bank_priorities(self, identifier: str) -> list:
pass
@abc.abstractmethod
def default(self, identifier: str):
pass
@abc.abstractmethod
def currency(self, identifier: str):
pass
@@ -0,0 +1,32 @@
from azbankgateways import default_settings as settings
from azbankgateways.models import BankType
from .bases import Reader
class DefaultReader(Reader):
def read(self, bank_type: BankType, identifier: str) -> dict:
"""
:param bank_type:
:param identifier:
:return:
base on bank type for example for BMI:
{
'MERCHANT_CODE': '<YOUR INFO>',
'TERMINAL_CODE': '<YOUR INFO>',
'SECRET_KEY': '<YOUR INFO>',
}
"""
return settings.BANK_GATEWAYS[bank_type]
def default(self, identifier: str):
return settings.BANK_DEFAULT
def currency(self, identifier: str):
return settings.CURRENCY
def get_bank_priorities(self, identifier: str) -> list:
priorities = [self.default(identifier)]
priorities = list(dict.fromkeys(priorities + settings.BANK_PRIORITIES))
return priorities