93 lines
3.4 KiB
Python
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)
|