Files
b2b/src/presentation/dependencies/commands.py

93 lines
3.4 KiB
Python

from functools import lru_cache
from fastapi import Depends
from src.application.abstractions import IUnitOfWork
from src.application.commands import (
CreatePurchaseRequestCommand,
GetOrganizationCommand,
GetOrganizationMnemonicCommand,
GetOrganizationSecretKeysCommand,
GetOrganizationWalletBalancesCommand,
GetPurchaseRequestCommand,
ListOrganizationWalletsCommand,
ListPurchaseRequestsCommand,
UploadDocsCommand,
)
from src.application.contracts import ILogger, IQueueMessanger
from src.infrastructure.wallet_balances import WalletBalanceService
from src.presentation.dependencies.logger import get_logger
from src.presentation.dependencies.unit_of_work import get_unit_of_work
from src.presentation.dependencies.messanger import get_queue_messanger
def get_create_purchase_request_command(
logger: ILogger = Depends(get_logger),
unit_of_work: IUnitOfWork = Depends(get_unit_of_work),
messanger: IQueueMessanger = Depends(get_queue_messanger),
) -> CreatePurchaseRequestCommand:
return CreatePurchaseRequestCommand(unit_of_work=unit_of_work, logger=logger, messanger=messanger)
def get_list_purchase_requests_command(
logger: ILogger = Depends(get_logger),
unit_of_work: IUnitOfWork = Depends(get_unit_of_work),
) -> ListPurchaseRequestsCommand:
return ListPurchaseRequestsCommand(unit_of_work=unit_of_work, logger=logger)
def get_get_purchase_request_command(
logger: ILogger = Depends(get_logger),
unit_of_work: IUnitOfWork = Depends(get_unit_of_work),
) -> GetPurchaseRequestCommand:
return GetPurchaseRequestCommand(unit_of_work=unit_of_work, logger=logger)
def get_get_organization_command(
logger: ILogger = Depends(get_logger),
unit_of_work: IUnitOfWork = Depends(get_unit_of_work),
) -> GetOrganizationCommand:
return GetOrganizationCommand(unit_of_work=unit_of_work, logger=logger)
def get_list_organization_wallets_command(
logger: ILogger = Depends(get_logger),
unit_of_work: IUnitOfWork = Depends(get_unit_of_work),
) -> ListOrganizationWalletsCommand:
return ListOrganizationWalletsCommand(unit_of_work=unit_of_work, logger=logger)
@lru_cache(maxsize=1)
def _wallet_balance_service() -> WalletBalanceService:
return WalletBalanceService()
def get_get_organization_wallet_balances_command(
logger: ILogger = Depends(get_logger),
unit_of_work: IUnitOfWork = Depends(get_unit_of_work),
) -> GetOrganizationWalletBalancesCommand:
return GetOrganizationWalletBalancesCommand(
unit_of_work=unit_of_work,
balance_service=_wallet_balance_service(),
logger=logger,
)
def get_get_organization_mnemonic_command(
logger: ILogger = Depends(get_logger),
unit_of_work: IUnitOfWork = Depends(get_unit_of_work),
) -> GetOrganizationMnemonicCommand:
return GetOrganizationMnemonicCommand(unit_of_work=unit_of_work, logger=logger)
def get_get_organization_secret_keys_command(
logger: ILogger = Depends(get_logger),
unit_of_work: IUnitOfWork = Depends(get_unit_of_work),
) -> GetOrganizationSecretKeysCommand:
return GetOrganizationSecretKeysCommand(unit_of_work=unit_of_work, logger=logger)
def get_upload_docs_command(
logger: ILogger = Depends(get_logger),
unit_of_work: IUnitOfWork = Depends(get_unit_of_work),
messanger: IQueueMessanger = Depends(get_queue_messanger),
) -> UploadDocsCommand:
return UploadDocsCommand(unit_of_work=unit_of_work, logger=logger, messanger=messanger)