Source code for aioyookassa.core.api.deals

from typing import Any, Optional, Union

from aioyookassa.core.api.base import BaseAPI
from aioyookassa.core.methods.deals import CreateDeal, GetDeal, GetDeals
from aioyookassa.types.deals import Deal, DealsList
from aioyookassa.types.params import CreateDealParams, GetDealsParams


[docs] class DealsAPI(BaseAPI[CreateDealParams, Deal]): """ YooKassa deals API client. Provides methods for creating and retrieving deals. """
[docs] async def create_deal( self, params: CreateDealParams, ) -> Deal: """ Create a new deal in YooKassa. :param params: Deal creation parameters (CreateDealParams). :type params: CreateDealParams :returns: Deal object. :rtype: Deal :seealso: https://yookassa.ru/developers/api#create_deal """ return await self._create_resource( params=params, params_class=CreateDealParams, method_class=CreateDeal, result_class=Deal, )
[docs] async def get_deals( self, params: Optional[GetDealsParams] = None, **kwargs: Any, ) -> DealsList: """ Retrieve a list of deals with optional filtering. :param params: Filter parameters (GetDealsParams). :type params: Optional[GetDealsParams] :param kwargs: Additional parameters (merged with params). :returns: Deals list object. :rtype: DealsList :seealso: https://yookassa.ru/developers/api#list_deals """ return await self._get_list( params=params, params_class=GetDealsParams, method_class=GetDeals, result_class=DealsList, **kwargs, )
[docs] async def get_deal(self, deal_id: str) -> Deal: """ Retrieve deal information by deal ID. :param deal_id: Deal identifier. :type deal_id: str :returns: Deal object. :rtype: Deal :seealso: https://yookassa.ru/developers/api#get_deal """ return await self._get_by_id( resource_id=deal_id, method_class=GetDeal, result_class=Deal, id_param_name="deal_id", )