Skip to content

kebrick/pyiikocloudapi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pyiikocloudapi - python iiko Cloud API сервис

Другие реализации

Также доступны реализации для других языков программирования:

Go: goiikoapi — реализация iiko Cloud API на языке Go

Установка

Пользуем pip:

pip install pyiikocloudapi

Зависимости

requests
pydantic

Начиная с версии 0.0.20

requests
pydantic>=2.9.2

Как использовать

Все названия методов соответствуют названию в ссылке (смотрите документацию iiko Transport).

Пример названия метода:

  • /api/1/auth/ - access_token
  • /api/1/order/create - order_create

Если вам нужно чтобы ответ был в dict - то либо

api = IikoTransport(api_login, return_dict=True)

# Либо
api.return_dict = True

Example

from pyiikocloudapi import IikoTransport
from pyiikocloudapi.models import CouriersModel

# инициализация класса 
api = IikoTransport(api_login)

# получаем организации получить из можно api.organizations_ids: dict or api.organizations_ids_models: OrganizationsModel
api.organizations()

# получаю список курьеров организации
couriers: CouriersModel = api.couriers(api.organizations_ids)

Пример валидации WebHook событий

from pyiikocloudapi.models import WebHookDeliveryOrderEventInfoModel

# Пример данных WebHook события
data = {
    "eventType": "DeliveryOrderUpdate",
    "eventTime": "2019-08-24 14:15:22.123",
    "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
    "correlationId": "48fb4cd3-2ef6-4479-bea1-7c92721b988c",
    "eventInfo": {
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "posId": "7f542382-3a91-4db8-938e-e9f86b88057c",
        "externalNumber": "string",
        "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
        "timestamp": 1566650122,
        "creationStatus": "Success",
        "errorInfo": None,
        "order": {
            # ... данные заказа
        }
    }
}

# Валидация данных WebHook
webhook_event = WebHookDeliveryOrderEventInfoModel.model_validate(data)

# Доступ к данным после валидации
print(webhook_event.event_type)  # "DeliveryOrderUpdate"
print(webhook_event.organization_id)  # "7bc05553-4b68-44e8-b7bc-37be63c6d9e9"

# В зависимости от event_type, event_info будет разного типа:
# - DeliveryOrderUpdate -> EventInfo
# - StopListUpdate -> EventInfoStopList
# - TableOrderError -> EventInfoTableOrder
# - ReserveUpdate / ReserveError -> EventInfoReserve
# - PersonalShift -> EventInfoPersonalShift

Каждый метод проверяет время жизни маркера доступа, если время жизни маркера прошло то будет автоматически запрошен заново.

Время жизни маркера доступа равно ~60 минутам.

###Дополнительная информация iiko Transport(iiko Cloud API) по словам разработчиков это по сути горячие хранилище без доступа к данным БД

sourceKey это "Источник заказа" из настроек в iikoWeb

Реализованные методы iiko Transport(iiko Cloud API)

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages