DTK API

Rest-API для ZasLogistics на Dart. Является точкой входа для интеграции в систему ZAS из внешних систем. Клиентские приложения общаются с этим только опосредованно - через Hasura. Содержим методы для Umbrella, а также вендоров-партнеров(OMNI, JER и др.). Занимается такими задачами как: формирование расписания, автоматическая установка водителей, расчет загрузки водителей, добавление, удаление и редактирование заказов в Zas, автообновление статусов заказа и другими.


Среды

stage

Проект: umbrella-courier-stage-01

Сервис: dtk-api-server

URL: api-stage.zaslogistica.com/

Swagger:

URL: api-stage.zaslogistica.com/docs/


production

Проект: umbrella-courier

Сервис: dtk-api-server

URL: api.zaslogistica.com/

Swagger:

URL: api.zaslogistica.com/docs/


Зависимости

dtk_api главным образом общается с базой данных Hasura. Помимо обращения к бд занимается обработкой запросов из Hasura Events и Hasura Actions.


Локальный запуск

Для запуска приложения нужны переменные окружения, которые можно передать при запуске dart run через флаги --define=ENV_NAME=ENV_VALUE. Необходимый список переменных можно посмотреть в файле /lib/config.dart.

Документация

Чтобы сгенерировать документацию нужно запустить команды:

  1. dart pub get - зависимости.
  2. dart doc - генерация доки.
  3. dart pub global activate dhttpd
  4. dart pub global run dhttpd --path doc/api - запуск документации локально.

Libraries

Controllers

controllers/core/ready_controller
controllers/cron/products_sync_controller
controllers/cron/update_districts_and_provinces_controller
controllers/geo_controller
controllers/get_schedule_controller
controllers/get_status_by_short_code_controller
controllers/list_available_districts_controller
controllers/order_cancellation_controller
controllers/order_change_courier_service_controller
controllers/order_create/order_create
controllers/order_create/order_create_controller
controllers/order_create/services/select_department_service
controllers/order_defer_controller
controllers/order_umbrella_controller
controllers/payment_controller
controllers/send_sms_controller
controllers/tracking_controller
controllers/user_block_controller
controllers/user_create_controller
controllers/whatsapp_bot_controllers/set_client_coords
core/controller

Domain

core/utils/hasura/hasura_action
domain/order_position_umbrella
domain/order_umbrella
domain/track_point

Features

features/order/order_add_dto
features/order/order_cancel_dto
features/order/order_defer_dto
features/order/order_update_dto
features/order/trigger_order_create_dto

GqlJsonWrapper

core/utils/wrappers/gql_json_wrapper

Triggers

controllers/trigger_order_create_controller
controllers/trigger_status_controller
controllers/trigger_user_banned_controller

Utils

core/utils/check_api_secret