Source code for glQiwiApi.qiwi.clients.maps.client

import typing

from glQiwiApi.core.abc.base_api_client import BaseAPIClient, RequestServiceFactoryType
from glQiwiApi.core.request_service import RequestService, RequestServiceProto
from glQiwiApi.core.session import AiohttpSessionHolder
from glQiwiApi.qiwi.clients.maps.methods.get_partners import GetPartners
from glQiwiApi.qiwi.clients.maps.methods.get_terminals import GetTerminals
from glQiwiApi.qiwi.clients.maps.types.polygon import Polygon
from glQiwiApi.qiwi.clients.maps.types.terminal import Terminal
from glQiwiApi.qiwi.clients.wallet.types import Partner


[docs]class QiwiMaps(BaseAPIClient): """ QIWI Terminal Maps API allows you to locate QIWI terminals on the territory of the Russian Federation """
[docs] def __init__( self, request_service_factory: typing.Optional[RequestServiceFactoryType] = None, ) -> None: super().__init__(request_service_factory)
async def _create_request_service(self) -> RequestServiceProto: return RequestService( session_holder=AiohttpSessionHolder( headers={ 'Content-type': 'application/json', 'Accept': 'application/json', } ) ) async def terminals( self, polygon: Polygon, zoom: typing.Optional[int] = None, pop_if_inactive_x_mins: int = 30, include_partners: typing.Optional[bool] = None, partners_ids: typing.Optional[typing.List[typing.Any]] = None, cache_terminals: typing.Optional[bool] = None, card_terminals: typing.Optional[bool] = None, identification_types: typing.Optional[int] = None, terminal_groups: typing.Optional[typing.List[typing.Any]] = None, ) -> typing.List[Terminal]: """ Get map of terminals sent for passed polygon with additional params :param polygon: glQiwiApi.types.Polygon object :param zoom: https://tech.yandex.ru/maps/doc/staticapi/1.x/dg/concepts/map_scale-docpage/ :param pop_if_inactive_x_mins: do not show if terminal was inactive for X minutes default 0.5 hours :param include_partners: result will include/exclude partner terminals :param partners_ids: Not fixed IDS array look at docs :param cache_terminals: result will include or exclude cache-acceptable terminals :param card_terminals: result will include or exclude card-acceptable terminals :param identification_types: `0` - not identified, `1` - partly identified, `2` - fully identified :param terminal_groups: look at QiwiMaps.partners :return: list of Terminal instances """ return await self._request_service.execute_api_method( GetTerminals( polygon=polygon, zoom=zoom, pop_if_inactive_x_mins=pop_if_inactive_x_mins, include_partners=include_partners, partners_ids=partners_ids, cache_terminals=cache_terminals, card_terminals=card_terminals, identification_types=identification_types, terminal_groups=terminal_groups, ) ) async def partners(self) -> typing.List[Partner]: """ Get terminal partners for ttpGroups :return: list of TTPGroups """ return await self._request_service.execute_api_method(GetPartners())