Source code for aioyookassa.core.api.personal_data

from typing import Union

from aioyookassa.core.api.base import BaseAPI
from aioyookassa.core.methods.personal_data import CreatePersonalData, GetPersonalData
from aioyookassa.types.params import (
    CreatePersonalDataParams,
    PayoutStatementRecipientData,
    SbpPayoutRecipientData,
)
from aioyookassa.types.personal_data import PersonalData


[docs] class PersonalDataAPI(BaseAPI[CreatePersonalDataParams, PersonalData]): """ YooKassa personal data API client. Provides methods for creating and retrieving personal data. """
[docs] async def create_personal_data( self, params: CreatePersonalDataParams, ) -> PersonalData: """ Create personal data in YooKassa. :param params: Personal data creation parameters (CreatePersonalDataParams). :type params: CreatePersonalDataParams :returns: PersonalData object. :rtype: PersonalData :seealso: https://yookassa.ru/developers/api#create_personal_data Example: >>> from aioyookassa.types.params import SbpPayoutRecipientData >>> params = SbpPayoutRecipientData( ... last_name="Ivanov", ... first_name="Ivan", ... middle_name="Ivanovich" ... ) >>> personal_data = await client.personal_data.create_personal_data(params) """ return await self._create_resource( params=params, params_class=CreatePersonalDataParams, # type: ignore[arg-type] method_class=CreatePersonalData, result_class=PersonalData, )
[docs] async def get_personal_data(self, personal_data_id: str) -> PersonalData: """ Retrieve personal data information by personal data ID. :param personal_data_id: Personal data identifier. :type personal_data_id: str :returns: PersonalData object. :rtype: PersonalData :seealso: https://yookassa.ru/developers/api#get_personal_data """ return await self._get_by_id( resource_id=personal_data_id, method_class=GetPersonalData, result_class=PersonalData, id_param_name="personal_data_id", )