REST API

REST API v2

Общий пример кода запроса к REST API на PHP

Код для выполнения запроса написан на PHP с использованием cURL. Этот пример будет использоваться для отображения запроса к серверу с REST API и его ответа.

<?php // Данные для cURL $method = ''; $action = ''; $data = array(); $headers = array(); $url = ""; // Инициализация cURL $ch = curl_init(); // Настройка cURL curl_setopt($ch, CURLOPT_URL, $url . $action . '?' . http_build_query($data)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // Выполнение запроса $response = curl_exec($ch); // Проверка на ошибки if (curl_errno($ch)) { echo 'Ошибка cURL: ' . curl_error($ch); } // Получение информации о запросе $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); echo "HTTP код: " . $httpCode . "\n"; // Закрытие cURL curl_close($ch); // Вывод ответа echo "Ответ сервера:\n"; print_r(json_decode($response, true)); ?>

Класс Codifer

Общее описание

Класс Codifer является контроллером для работы с геодезическим кодификатором - системой классификации и кодирования геодезических объектов. Наследуется от базового класса Controller и предоставляет функционал для загрузки, обновления и поиска кодов объектов в системе. Класс специализируется на обработке семантических данных и предоставлении релевантных кодов на основе поисковых фраз.

Данные описываются тремя таблица в базе данных: объекты изыскательных кодов с описанием, поля объектов и значения по умолчанию для полей. Поиск данных кодификатора по фразе производитчся через SQL запрос с использованием MATCH. Релевантность фразы рассчитывается на основе вхождения сказанных слов в поисковую строку, описание и название кода.


Методы класса

1. Метод codifer.upload

Назначение: Загружает и обновляет данные кодификатора в базе данных из внешнего XML-файла. Выполняет полный цикл обработки: чтение файла, парсинг семантических данных и загрузку в базу данных.

Параметры запроса:

  • Обязательные:

    • path (string) - путь до файла кодификатора для анализа и загрузки

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_ROOT (только для root-пользователей)

Используемый HTTP-метод: POST

Пример запроса:

$method = 'POST'; $action = 'codifer.upload'; $data = array( 'path' => 'http://example.ru/some.semantic' ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => [message] => 1 [time] => 11:44:17 12.11.2025 [timezone] => Etc/GMT-3 [timestamp] => 1762937057 )

2. Метод codifer.get

Назначение: Выполняет поиск кодов объектов в кодификаторе на основе произносимой фразы. Возвращает релевантные результат с расчетом степени соответствия.

Параметры запроса:

  • Обязательные:

    • phrase (string) - произносимая фраза для поиска подходящих кодов

Требуемый уровень доступа: ACCESS_ALL (доступно всем пользователям, включая неавторизованных)

Используемый HTTP-метод: GET

Пример запроса:

$method = 'GET'; $action = 'codifer.get'; $data = array( 'phrase' => 'опора фонарная с четыремя фонарями' ); $headers = array();

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [CODE] => 100156 [NAME] => Опора с фонарём [DESCRIPTION] => Стальная круглая опора с четыремя фонарями ; [RELEVANCE] => 5.3 [FIELDS] => Array ( [Материал] => Array ( [0] => Array ( [TAG] => MATERIAL [TYPE] => enum [VALUE] => Сталь ) ) [Назначение ] => Array ( [0] => Array ( [TAG] => TYPE1 [TYPE] => enum [VALUE] => Столб фонарный ) ) [Форма] => Array ( [0] => Array ( [TAG] => [TYPE] => enum [VALUE] => Круглая ) ) [Число фонарей] => Array ( [0] => Array ( [TAG] => [TYPE] => enum [VALUE] => Четыре ) ) ) ) [message] => Operation is successful [time] => 11:38:33 12.11.2025 [timezone] => Etc/GMT-3 [timestamp] => 1762936713 )

Структура ответа:

[ 'CODE' => string, // Код объекта 'NAME' => string, // Название объекта 'DESCRIPTION' => string, // Описание объекта 'RELEANVANCE' => float, // Коэффициент релевантности 'FIELDS' => [ // Поля объекта 'FIELD_NAME' => [ [ 'TAG' => string, // Тег поля 'TYPE' => string, // Тип данных 'VALUE' => mixed // Значение поля ] ] ] ]

3. Метод codifer.code

Назначение: Выполняет поиск кодов объектов в кодификаторе на основе указанного кода объекта.

Параметры запроса:

  • Обязательные:

    • code (string) - код объекта кодификатора

Требуемый уровень доступа: ACCESS_ALL (доступно всем пользователям, включая неавторизованных)

Используемый HTTP-метод: GET

Пример запроса:

$method = 'GET'; $action = 'codifer.code'; $data = array( 'code' => '100156' ); $headers = array();

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [CODE] => 100156 [NAME] => Опора с фонарём [DESCRIPTION] => Стальная круглая опора с четыремя фонарями ; [RELEVANCE] => 1.8 [FIELDS] => Array ( [Материал] => Array ( [0] => Array ( [TAG] => MATERIAL [TYPE] => enum [VALUE] => Сталь ) ) ... ) ) [message] => Operation is successful [time] => 11:57:01 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776070621 )

4. Метод codifer.list

Назначение: Выполняет поиск кодов объектов в кодификаторе на основе произносимой фразы. Возвращает релевантные результаты с расчетом степени соответствия.

Параметры запроса:

  • Обязательные:

    • phrase (string) - произносимая фраза для поиска подходящих кодов

Требуемый уровень доступа: ACCESS_ALL (доступно всем пользователям, включая неавторизованных)

Используемый HTTP-метод: GET

Пример запроса:

$method = 'GET'; $action = 'codifer.list'; $data = array( 'phrase' => 'опора фонарная с четыремя фонарями' ); $headers = array();

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [0] => Array ( [CODE] => 100156 [NAME] => Опора с фонарём [DESCRIPTION] => Стальная круглая опора с четыремя фонарями ; [RELEVANCE] => 5.3 [FIELDS] => Array ( [Материал] => Array ( [0] => Array ( [TAG] => MATERIAL [TYPE] => enum [VALUE] => Сталь ) ) ... ) ) [1] => Array ( [CODE] => 100157 [NAME] => Опора с фонарём [DESCRIPTION] => Стальная квадратная опора с четыремя фонарями ; [RELEVANCE] => 5.3 [FIELDS] => Array ( [Материал] => Array ( [0] => Array ( [TAG] => MATERIAL [TYPE] => enum [VALUE] => Сталь ) ) ... ) ) [2] => Array ( [CODE] => 100148 [NAME] => Опора с фонарём [DESCRIPTION] => Железобетонная квадратная опора с четыремя фонарями; [RELEVANCE] => 5 [FIELDS] => Array ( [Материал] => Array ( [0] => Array ( [TAG] => MATERIAL [TYPE] => enum [VALUE] => Железобетон ) ) ... ) ) ... ) [message] => Operation is successful [time] => 11:59:52 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776070792 )

Структура ответа:

[ 'CODE' => string, // Код объекта 'NAME' => string, // Название объекта 'DESCRIPTION' => string, // Описание объекта 'RELEANVANCE' => float, // Коэффициент релевантности 'FIELDS' => [ // Поля объекта 'FIELD_NAME' => [ [ 'TAG' => string, // Тег поля 'TYPE' => string, // Тип данных 'VALUE' => mixed // Значение поля ] ] ] ]

5. Метод codifer.objects

Назначение: Выводит список всех доступных для использования кодов объектов кодификатора.

Требуемый уровень доступа: ACCESS_ALL (доступно всем пользователям, включая неавторизованных)

Используемый HTTP-метод: GET

Пример запроса:

$method = 'GET'; $action = 'codifer.objects'; $data = array(); $headers = array();

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [0] => Array ( [CODE] => 100001 [NAME] => Дерево отдельно стоящее [DESCRIPTION] => Общее, лиственное, хвойное, фруктовое; ) [1] => Array ( [CODE] => 100002 [NAME] => Водоемы, реки, озера [DESCRIPTION] => ) [2] => Array ( [CODE] => 100003 [NAME] => Болото [DESCRIPTION] => Болото; ) [3] => Array ( [CODE] => 100004 [NAME] => Опора, фонарь, часы [DESCRIPTION] => ) ... ) [message] => Operation is successful [time] => 12:03:06 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776070986 )

Класс Command

Общее описание

Класс Command является контроллером для управления голосовыми командами в системе. Наследуется от базового класса Controller и предоставляет REST API для работы с произносимыми командами, включая их добавление, получение, обновление и удаление.

В основе лежит таблица служебных комманд, исопльзуемых в мобильном приложении. Также используется таблица записи произносимых фраз с её связями для формирования информации о пользователе и команде. Таблица фраз имеет ограничение на обновление данных.


Методы класса

1. Метод command.add

Назначение: Добавляет новую произносимую команду в систему.

Параметры запроса:

  • Обязательные:

    • phrase (string) - произносимая фраза для сопоставления

    • action (int) - числовая команда контроллера

    • auth (string) - токен авторизации пользователя

  • Необязательные:

    • active (bool) - флаг активности команды (по умолчанию true)

Требуемый уровень доступа: ACCESS_ROOT (только для root-пользователей)

Используемый HTTP-метод: POST

Пример запроса:

$method = 'POST'; $action = 'command.add'; $data = array( 'phrase' => 'Тестовая фраза', 'action' => 5, 'active' => false, ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 201 Ответ сервера: Array ( [result] => Array ( [ID] => 2 [ACTIVE] => 0 [PHRASE] => Тестовая фраза [ACTION] => 5 ) [message] => Resource created successfully [time] => 12:10:32 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776071432 )

2. Метод command.get

Назначение: Получает данные о сказанных фразах в рамках конкретного проекта.

Параметры запроса:

  • Обязательные:

    • project (int) - идентификатор проекта

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: GET

Пример запроса:

$method = 'GET'; $action = 'command.get'; $data = array( 'project' => 1 ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [1] => Array ( [ID] => 1 [RELATION_ID] => 1 [CORS_LOGIN] => [PHRASE] => тестовая первая фраза [TIMESTAMP] => 2026-03-19 14:12:53 [FIELDS] => Array ( [0] => Array ( ) ) ) [2] => Array ( [ID] => 2 [RELATION_ID] => 1 [CORS_LOGIN] => test [PHRASE] => тестовая вторая фраза [TIMESTAMP] => 2026-03-19 14:26:20 [FIELDS] => Array ( [0] => Array ( ) ) ) [3] => Array ( [ID] => 3 [RELATION_ID] => 1 [CORS_LOGIN] => admin [PHRASE] => тестовая третья фраза [TIMESTAMP] => 2026-03-19 14:49:34 [FIELDS] => Array ( [0] => Array ( ) ) ) ... ) [message] => Operation is successful [time] => 12:11:36 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776071496 )

3. Метод command.list

Назначение: Получает список всех доступных команд в системе.

Параметры запроса:

  • Обязательные:

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: GET

Пример запроса:

$method = 'GET'; $action = 'command.list'; $data = array(); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [1] => Array ( [ID] => 1 [ACTIVE] => 0 [PHRASE] => Первая тестовая фраза [ACTION] => 1 ) [2] => Array ( [ID] => 2 [ACTIVE] => 0 [PHRASE] => Тестовая фраза [ACTION] => 5 ) ) [message] => Operation is successful [time] => 12:12:31 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776071551 )

4. Метод command.tell

Назначение: Добавляет информацию о произнесенной фразе в системе. Может использоваться для создания точек с привязкой к устройству.

Параметры запроса:

  • Обязательные:

    • project (int) - идентификатор проекта

    • phrase (string) - произнесенная фраза

    • auth (string) - токен авторизации пользователя

  • Необязательные:

    • mac (string) - MAC-адрес устройства (обязателен при создании точки)

    • device (string) - название устройства (обязателен при создании точки)

    • gnss (string) - сообщение от GNSS-приёмника (обязателен при создании точки)

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: POST

Пример запроса:

$method = 'POST'; $action = 'command.tell'; $data = array( 'project' => 1, 'phrase' => 'опора фонарная с четыремя фонарями', 'mac' => '00:11:22:33:44', 'device' => 'asdf', 'gnss' => '$GNGGA,102522.00,5308.47049009,N,04501.87156702,E,1,11,2.0,160.796,M,4.728,M,,*41', 'login' => 'admin', ); $headers = array( 'Authorization: ' . 'Authorization: ' );

Ответ:

HTTP код: 201 Ответ сервера: Array ( [result] => Array ( [ID] => 7 [RELATION_ID] => 1 [CORS_LOGIN] => admin [PHRASE] => опора фонарная с четыремя фонарями [TIMESTAMP] => 2026-04-13 12:34:18 [FIELDS] => Array ( [0] => Array ( ) ) [POINT] => Array ( [ID] => 31 [ACTIVE] => 1 [MAC] => 00:11:22:33:44 [DEVICE] => asdf [MESSAGE] => $GNGGA,102522.00,5308.47049009,N,04501.87156702,E,1,11,2.0,160.796,M,4.728,M,,*41 [B] => 53.141174834833 [L] => 45.031192783667 [H] => 160.796 [X] => 373866.22496532 [Y] => 12040999.9274 [Z] => 36662.405886374 [CODE] => 100156 [POINT_CHECKED] => 1 [IS_REFERENCE] => 0 [REFERENCE_ID] => [REFERENCE_TYPE] => [REFERENCE_NAME] => [TIMESTAMP] => 2026-04-13 12:34:18 [UPDATED] => 2026-04-13 12:34:18 [PHRASE_ID] => 7 [PHRASE] => опора фонарная с четыремя фонарями [USER_ID] => 1 [PROJECT_ID] => 1 [FIELDS] => Array ( [0] => Array ( [NAME] => Материал [TYPE] => enum [DEFAULT] => Сталь [VALUE] => ) [1] => Array ( [NAME] => Назначение [TYPE] => enum [DEFAULT] => Столб фонарный [VALUE] => ) [2] => Array ( [NAME] => Форма [TYPE] => enum [DEFAULT] => Круглая [VALUE] => ) [3] => Array ( [NAME] => Число фонарей [TYPE] => enum [DEFAULT] => Четыре [VALUE] => ) ) ) ) [message] => Resource created successfully [time] => 12:34:18 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776072858 )

5. Метод command.update

Назначение: Обновляет данные существующей команды.

Параметры запроса:

  • Обязательные:

    • id (int) - идентификатор команды

    • phrase (string) - фраза сопоставления команды

    • action (int) - числовая команда контроллера

    • active (bool) - статус активность команда контроллера

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_ROOT (только для root-пользователей)

Используемый HTTP-метод: PATCH

Пример запроса:

$method = 'PATCH'; $action = 'command.update'; $data = array( 'id' => 2, 'active' => true, 'action' => 2, 'phrase' => 'Вторая тестовая фраза', ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [ID] => 2 [ACTIVE] => 1 [PHRASE] => Вторая тестовая фраза [ACTION] => 2 ) [message] => Data modification success [time] => 13:24:52 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776075892 )

6. Метод command.delete

Назначение: Удаляет команду из системы по идентификатору.

Параметры запроса:

  • Обязательные:

    • id (int) - идентификатор команды

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_ROOT (только для root-пользователей)

Используемый HTTP-метод: DELETE

Пример запроса:

$method = 'DELETE'; $action = 'command.delete'; $data = array( 'id' => 2 ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [1] => Array ( [ID] => 1 [ACTIVE] => 0 [PHRASE] => Тестовая фраза [ACTION] => 1 ) [2] => Array ( [ID] => 2 [ACTIVE] => 0 [PHRASE] => Вторая тестовая фраза [ACTION] => 2 ) ) [message] => Successful deletion [time] => 13:28:56 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776076136 )

Класс Company

Общее описание

Класс Company является контроллером для управления компаниями в системе. Наследуется от базового класса Controller и предоставляет REST API для работы с пользовательскими компаниями, включая их создание, получение данных, обновление и удаление.

Представляется таблицей компании, взаимодействующей с лицензиями. Обновление компании доступно только действующему директору компании. При удалении компании удаляются все её данные, включая пользователей, проекты, точки и локализации.


Методы класса

1. Метод company.add

Назначение: Создает новую пользовательскую компанию в системе. Позволяет зарегистрировать компанию с указанием названия и региона расположения.

Параметры запроса:

  • Обязательные:

    • name (string) - название компании

    • district (string) - название региона, где располагается компания

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: POST

Пример запроса:

$method = 'POST'; $action = 'company.add'; $data = array( 'name' => 'Тест', 'district' => '' ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 201 Ответ сервера: Array ( [result] => 10 [message] => Resource created successfully [time] => 14:39:15 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776080355 )

2. Метод company.get

Назначение: Получает данные о компании текущего авторизованного пользователя.

Параметры запроса:

  • Обязательные:

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: GET

Пример запроса:

$method = 'GET'; $action = 'company.get'; $data = array(); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [ID] => 10 [ACTIVE] => 1 [DIRECTOR_ID] => 1 [NAME] => Тест [DISTRICT] => [PUBLIC_KEY] => [LICENSE] => Array ( [ID] => 1 [TYPE] => trial [ACTIVE_DAYS] => 30 [COST] => 0 [DELETED] => 0 [TIMESTAMP] => 2026-03-13 13:26:46 [LICENSE_PAY] => 2026-04-13 14:39:15 [REST_DAYS] => 30 ) ) [message] => Operation is successful [time] => 14:40:41 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776080441 )

3. Метод company.update

Назначение: Обновляет данные существующей компании. Позволяет изменить название компании, назначить нового директора или изменить регион расположения.

Параметры запроса:

  • Обязательные:

    • name (string) - название компании

    • director (int) - идентификатор директора компании

    • district (string) - название региона, где располагается компания

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_DIRECTOR (только для директоров компаний)

Используемый HTTP-метод: PATCH

Пример запроса:

$method = 'PATCH'; $action = 'company.update'; $data = array( 'district' => 'District' ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [ID] => 10 [ACTIVE] => 1 [DIRECTOR_ID] => 1 [NAME] => Тест [DISTRICT] => District [PUBLIC_KEY] => ) [message] => Data modification success [time] => 14:43:58 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776080638 )

4. Метод company.delete

Назначение: Полностью удаляет компанию и все связанные с ней данные из системы.

Параметры запроса:

  • Обязательные:

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_DIRECTOR (только для директоров компаний)

Используемый HTTP-метод: DELETE

Пример запроса:

$method = 'DELETE'; $action = 'company.delete'; $data = array(); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => [message] => Successful deletion [time] => 14:44:55 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776080695 )

Класс Cors

Общее описание

Класс Cors является контроллером для управления учетными данными профилей CORS. Наследуется от базового класса Controller и предоставляет REST API для работы с учётными данными, включая их создание, получение, обновление, удаление.

Справочная информация по учётным данным CORS, успользуемая для авторизации на серверах поправок. Имеет историю использования и состояние занятости пользователем, которое может быть сброшено по истечению времени через событие.


Методы класса

1. Метод cors.add

Назначение: Добавляет учётные данные профиля CORS.

Параметры запроса:

  • Обязательные:

    • login (string) - логин учётной записи CORS

    • password (string) - пароль учётной записи CORS

    • auth (string) - токен авторизации пользователя

  • Необязательные:

    • name (string) - название подписки

    • date (string) - дата начала действия подписки

    • days (int) - количество дней действия подписки

Требуемый уровень доступа: ACCESS_ADMIN (только для администраторов)

Используемый HTTP-метод: POST

Пример запроса:

$method = 'POST'; $action = 'cors.add'; $data = array( 'login' => 'test', 'password' => '1234', ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 201 Ответ сервера: Array ( [result] => Array ( [LOGIN] => test [COMPANY_ID] => 1 [PASSWORD] => 1234 [USED] => 0 [TIMESTAMP] => 2026-04-14 15:45:21 ) [message] => Resource created successfully [time] => 15:45:21 14.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776170721 )

2. Метод cors.get

Назначение: Получение учётных данных доступных профилей внутри одной компании.

Параметры запроса:

  • Обязательные:

    • auth (string) - токен авторизации пользователя

  • Необязательные:

    • select (array) - массив полей выборки данных

    • filter (array) - массив полей отбора данных (поддреживаются условие "или" и спецсимволы для строк и чисел: _, %, !, <=, >=, <, >)

    • order (array) - массив пар ключ-значение для сортировки данных

    • limit (int) - число больше 0 для ограничения количества отбираемых данных

    • start (int) - смещение для пагинации

Требуемый уровень доступа: ACCESS_ADMIN (только для администраторов)

Используемый HTTP-метод: GET

Пример запроса:

$method = 'GET'; $action = 'cors.get'; $data = array( 'select' => ['LOGIN', 'USED'], 'order' => ['USED' => 'ASC'], ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [0] => Array ( [LOGIN] => test [USED] => 0 ) ) [message] => Operation is successful [time] => 10:40:16 15.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776238816 )

3. Метод cors.history

Назначение: Получение истории использования учётных данных доступных профилей внутри одной компании.

Параметры запроса:

  • Обязательные:

    • auth (string) - токен авторизации пользователя

  • Необязательные:

    • select (array) - массив полей выборки данных

    • filter (array) - массив полей отбора данных (поддреживаются условие "или" и спецсимволы для строк и чисел: _, %, !, <=, >=, <, >)

    • order (array) - массив пар ключ-значение для сортировки данных

    • limit (int) - число больше 0 для ограничения количества отбираемых данных

    • start (int) - смещение для пагинации

Требуемый уровень доступа: ACCESS_ADMIN (только для администраторов)

Используемый HTTP-метод: GET

Пример запроса:

$method = 'GET'; $action = 'cors.history'; $data = array( 'select' => ['CORS_LOGIN', 'TIME', 'USER_ID'], 'order' => ['TIME' => 'DESC'], ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [0] => Array ( [CORS_LOGIN] => test [TIME] => 00:00:20 [USER_ID] => 1 ) ) [message] => Operation is successful [time] => 11:37:15 15.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776242235 )

4. Метод cors.used

Назначение: Выдача и фиксация учётных данных профиля CORS за сотрудником компании для предоставления доступа к серверам поправок. Метод сам определяет доступный профиль и предоставляет данные авторизации пользователю.

Параметры запроса:

  • Обязательные:

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: POST

Пример запроса:

$method = 'POST'; $action = 'cors.used'; $data = array(); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [LOGIN] => test [PASSWORD] => 1234 ) [message] => Operation is successful [time] => 11:45:19 15.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776242719 )

5. Метод cors.unused

Назначение: Снятие фиксации учётных данных профиля CORS с сотрудника компании. Вызывается при прекращении работ с серверами поправок. Метод автоматически фиксирует время использования профиля сотрудником.

Параметры запроса:

  • Обязательные:

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: POST

Пример запроса:

$method = 'POST'; $action = 'cors.unused'; $data = array(); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [ID] => 4 [CORS_LOGIN] => test [USER_ID] => 1 [TIME] => 00:00:29 [TIMEOUT] => 0 [TIMESTAMP] => 2026-04-15 11:45:19 ) [message] => Operation is successful [time] => 11:45:48 15.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776242748 )

6. Метод cors.update

Назначение: Обнволение пароля указанной учетной записи CORS.

Параметры запроса:

  • Обязательные:

    • login (string) - логин учётной записи CORS

    • password (string) - новый пароль учётной записи CORS

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_ADMIN (только для администраторов)

Используемый HTTP-метод: PATCH

Пример запроса:

$method = 'PATCH'; $action = 'cors.update'; $data = array( 'login' => 'test', 'password' => '4321', ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [LOGIN] => test [COMPANY_ID] => 1 [PASSWORD] => 4321 [USED] => 0 [TIMESTAMP] => 2026-04-14 15:45:21 ) [message] => Data modification success [time] => 11:48:42 15.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776242922 )

7. Метод cors.delete

Назначение: Мягкое удаление учётных данных профилей CORS. Все сведения об использовании профиля остаются доступными.

Параметры запроса:

  • Обязательные:

    • login (string) - логин учётной записи CORS

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_ADMIN (только для администраторов)

Используемый HTTP-метод: DELETE

Пример запроса:

$method = 'DELETE'; $action = 'cors.delete'; $data = array( 'login' => 'test', ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [test] => Array ( [LOGIN] => test [ACTIVE] => 0 [COMPANY_ID] => 1 [PASSWORD] => 4321 [USED] => 0 [TIMESTAMP] => 2026-04-14 15:45:21 ) ) [message] => Data modification success [time] => 11:56:09 15.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776243369 )

Класс Datum

Общее описание

Класс Datum является контроллером для управления системами координат (датумами) в геодезической системе. Наследуется от базового класса Controller и предоставляет REST API для работы с датумами, включая их создание, получение, обновление, удаление и применение в проектах. Особенностью класса является работа с файлами датумов, загружаемыми из внешних источников.

Объёмный контроллер, включающий в себя таблицы локализаций и методы пересчёта координат в местную систему. База данных хранит обширную информацю о глобальных локализациях, доступных авторизованным пользователям, и информацию о частных локализациях компаний используемых при работе с проектами.


Методы класса

1. Метод datum.add

Назначение: Добавляет новую систему координат (датум) в систему с загрузкой данных из внешнего файла.

Параметры запроса:

  • Обязательные:

    • name (string) - название датума

    • path (string) - путь до файла с датумом

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_ADMIN (только для администраторов)

Используемый HTTP-метод: POST

Пример запроса:

$method = 'POST'; $action = 'datum.add'; $data = array( 'name' => 'UTM-WGS84-Zone 40N', 'path' => 'D:\\UTM-WGS84-Zone 40N .dam', ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 201 Ответ сервера: Array ( [result] => Array ( [AXIAL_MERIDIAN_RAD] => 0.99483767363676800000 [NORTH_SHIFT] => 0 [EAST_SHIFT] => 500000 [INITIAL_LATITUDE_RAD] => 0.00000000000000000000 [SCALE_FACTOR] => 0.9996 [SOURCE_ELLIPSOID_NAME] => [TARGET_ELLIPSOID_NAME] => [START_X_DATUM] => 0 [START_Y_DATUM] => 0 [START_Z_DATUM] => 0 [TRANSLATION_X] => 0 [TRANSLATION_Y] => 0 [TRANSLATION_Z] => 0 [ROTATION_X] => 0.00000000000000000000 [ROTATION_Y] => 0.00000000000000000000 [ROTATION_Z] => 0.00000000000000000000 [COEFFICIENT_DATUM] => 0 [HELMERT_SHIFT_X] => 1 [HELMERT_SHIFT_Y] => 0 [HELMERT_ROTATION_RAD] => 0.00000000000000000000 [HELMERT_SCALE] => 0 [HEIGHT_PARAM_A] => 0 [HEIGHT_PARAM_B] => 0 [HEIGHT_PARAM_C] => 0 [HEIGHT_PARAM_D] => 0 [HEIGHT_PARAM_E] => 0 [HEIGHT_PARAM_F] => 0 [HEIGHT_PARAM_X0] => 0 [HEIGHT_PARAM_Y0] => 0 [HELMERT_FORMULA_FLAG] => [ECCENTRICITY_FORMULA_FLAG] => 0 [PROJECTION_TYPE] => 4 [DATUM_MODEL] => 1 [PLAN_MODEL] => 0 [HEIGHT_MODEL] => 0 [MATH_HEIGHT_MODEL] => 0 [ZONE_PLUS_FLAG] => [X_TO_NORTH] => 1 [Y_TO_EAST] => 1 [GEOID_GRID_FLAG] => ) [message] => Resource created successfully [time] => 16:58:07 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776088687 )

2. Метод datum.get

Назначение: Получает список доступных систем координат с поддержкой фильтрации по названию.

Параметры запроса:

  • Обязательные:

    • auth (string) - токен авторизации пользователя

  • Необязательные:

    • select (array) - массив полей выборки данных

    • filter (array) - массив полей отбора данных (поддреживаются условие "или" и спецсимволы для строк и чисел: _, %, !, <=, >=, <, >)

    • order (array) - массив пар ключ-значение для сортировки данных

    • limit (int) - число больше 0 для ограничения количества отбираемых данных

    • start (int) - смещение для пагинации

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: GET

Пример запроса:

$method = 'GET'; $action = 'datum.get'; $data = array( 'filter' => [ 'LOGIC' => 'OR', 'GLOBAL' => 0, 'NAME' => 'MCK-58%' ], 'select' => [ 'NAME', 'GLOBAL' ], ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [268] => Array ( [NAME] => MCK-58 Zone 1 [GLOBAL] => 1 ) [269] => Array ( [NAME] => MCK-58 Zone 1 (1) [GLOBAL] => 0 ) [270] => Array ( [NAME] => MCK-58 Zone 2 [GLOBAL] => 1 ) [271] => Array ( [NAME] => MCK-58 Zone 2 (20) [GLOBAL] => 0 ) [272] => Array ( [NAME] => MCK-58 Zone 2 (21) [GLOBAL] => 0 ) [380] => Array ( [NAME] => UTM-WGS84-Zone 40N [GLOBAL] => 0 ) ) [message] => Operation is successful [time] => 11:37:18 14.05.2026 [timezone] => UTC [timestamp] => 1778758638 )

3. Метод datum.change

Назначение: Изменяет систему координат для указанного проекта пользователя.

Параметры запроса:

  • Обязательные:

    • datum (int) - идентификатор датума

    • project (int) - идентификатор проекта

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: PATCH

Пример запроса:

$method = 'PATCH'; $action = 'datum.change'; $data = array( 'project' => 1, 'datum' => 'CK42 Zone 01 CM 3E TD', ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [ID] => 1 [ACTIVE] => 1 [DATE_START] => 2026-03-16 [DATE_STOP] => 2026-06-18 [DATE_CLOSE] => [STAGE] => new [NAME] => test [DESCRIPTION] => test project orm [COMPANY_ID] => 1 [DATUM_NAME] => CK42 Zone 01 CM 3E TD [TIMESTAMP] => 2026-03-16 12:11:43 [UPDATED] => 2026-04-13 17:14:10 [USERS] => Array ( [0] => Array ( [NAME] => Первый пользователь [ROLE] => creator ) [1] => Array ( [NAME] => Второй пользователь [ROLE] => header ) ) [STATUS_NAME] => Новый проект ) [message] => Operation is successful [time] => 17:14:11 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776089651 )

4. Метод datum.convert

Назначение: Пересчитывает координаты точек в проекте по указанной локализации.

Параметры запроса:

  • Обязательные:

    • project (int) - идентификатор проекта

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: PATCH

Пример запроса:

$method = 'PATCH'; $action = 'datum.convert'; $data = array( 'project' => 1, ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => [message] => Operation is successful [time] => 11:33:59 14.05.2026 [timezone] => UTC [timestamp] => 1778758439 )

5. Метод datum.update

Назначение: Обновляет данные существующей системы координат.

Параметры запроса:

  • Обязательные:

    • name (string) - название датума

    • fields (array) - список обновляемых полей со значениями

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_ADMIN (только для администраторов)

Используемый HTTP-метод: PATCH

Пример запроса:

$method = 'PATCH'; $action = 'datum.update'; $data = array( 'fields' => [ 'N_ORI_SOURCE_PLAN' => '12.001', 'N_ORI_TARGET_PLAN' => '2.1' ], 'name' => 'UTM-WGS84-Zone 40N' ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [NAME] => UTM-WGS84-Zone 40N [ACTIVE] => 1 [GLOBAL] => 0 [COMPANY_ID] => 1 [N_ORI_SOURCE_PLAN] => 12.00100000000000000000 [N_ORI_TARGET_PLAN] => 2.10000000000000000000 [NR_PLAN] => 0.00000000000000000000 [NA1_PLAN] => 0.00000000000000000000 [NA2_PLAN] => 0.00000000000000000000 ... ) [message] => Data modification success [time] => 17:30:11 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776090611 )

6. Метод datum.delete

Назначение: Удаляет систему координат из компании.

Параметры запроса:

  • Обязательные:

    • name (string) - название датума

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_ADMIN (только для администраторов)

Используемый HTTP-метод: DELETE

Пример запроса:

$method = 'DELETE'; $action = 'datum.delete'; $data = array( 'name' => 'UTM-WGS84-Zone 40N', ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => [message] => Successful deletion [time] => 17:34:54 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776090894 )

Класс Log

Общее описание

Класс Log является контроллером для управления отладочными данными. Наследуется от базового класса Controller и предоставляет REST API для работы с записями логов, включая их добавление и получение.

Записанные логи хранятся в базе данных в теченее месяца, после автоматически удаляются по событию. Данные не подлежат оновлению, привязываются к пользователю и автоматически удаляются при удалении пользователя.


Методы класса

1. Метод log.add

Назначение: Записывает служебные данные в таблицу.

Параметры запроса:

  • Обязательные:

    • data (string) - логируемые данные

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: POST

Пример запроса:

$method = 'POST'; $action = 'log.add'; $data = array( 'data' => 'Служебная запись приложения', ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [ID] => 1 [USER_ID] => 1 [DATA] => Служебная запись приложения [TIMESTAMP] => 2026-05-14 11:52:53 [USER_NAME] => Кирилл Б. ) [message] => Operation is successful [time] => 11:52:53 14.05.2026 [timezone] => UTC [timestamp] => 1778759573 )

2. Метод log.get

Назначение: Получает служебные данные из журнала записей.

Параметры запроса:

  • Обязательные:

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: GET

Пример запроса:

$method = 'GET'; $action = 'log.get'; $data = array(); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [0] => Array ( [ID] => 1 [USER_ID] => 1 [DATA] => Служебная запись приложения [TIMESTAMP] => 2026-05-14 11:52:53 [USER_NAME] => Кирилл Б. ) [1] => Array ( [ID] => 2 [USER_ID] => 1 [DATA] => Служебная запись приложения [TIMESTAMP] => 2026-05-14 11:53:28 [USER_NAME] => Кирилл Б. ) ) [message] => Operation is successful [time] => 11:57:05 14.05.2026 [timezone] => UTC [timestamp] => 1778759825 )

Класс Point

Общее описание

Класс Point является контроллером для управления геодезическими точками в проектах. Наследуется от базового класса Controller и предоставляет REST API для работы с точками, включая их получение, обновление координат, управление полями и удаление. Класс специализируется на работе с пространственными данными и координатами.

Представляется собой набор таблиц для полной работы с точками. Сюда входят таблицы хранения информации о точке, её полей в соответствии с кодификатором и привязкой к опорным точкам. При изменении исходных координат у точки меняется флаг состояния проверки, чтобы проинформировать пользователя о наличии возможных искожений данных.


Методы класса

1. Метод point.get

Назначение: Получает данные о точках проекта с применением фильтров. Выполняет сложную обработку структуры данных для нормализации полей.

Параметры запроса:

  • Обязательные:

    • project (int) - идентификатор проекта

    • auth (string) - токен авторизации пользователя

  • Необязательные:

    • point (int) - идентификатор точки

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: GET

Пример запроса:

$method = 'GET'; $action = 'point.get'; $data = array( 'project' => 1, ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [1] => Array ( [ID] => 1 [ACTIVE] => 1 [MAC] => 00:11:22:33:44:55 [DEVICE] => test [MESSAGE] => [B] => 53.239992 [L] => 45.011034 [H] => 183.5802 [X] => 13540868.965219 [Y] => 30593313.731326 [Z] => 189.7846804373 [CODE] => [POINT_CHECKED] => 0 [IS_REFERENCE] => 0 [REFERENCE_ID] => [REFERENCE_TYPE] => [REFERENCE_NAME] => [TIMESTAMP] => 2026-04-07 13:25:38 [UPDATED] => 2026-04-13 17:14:10 [PHRASE_ID] => 2 [PHRASE] => тестовая вторая фраза [USER_ID] => 1 [PROJECT_ID] => 1 [FIELDS] => Array ( [0] => Array ( ) ) ) [2] => Array ( [ID] => 2 [ACTIVE] => 1 [MAC] => 00:11:22:33:44:55 [DEVICE] => test [MESSAGE] => [B] => 53.23999 [L] => 45.011033 [H] => 183.377 [X] => 13541037.464764 [Y] => 30593296.086595 [Z] => 189.58148195129 [CODE] => [POINT_CHECKED] => 0 [IS_REFERENCE] => 0 [REFERENCE_ID] => [REFERENCE_TYPE] => [REFERENCE_NAME] => [TIMESTAMP] => 2026-04-07 13:25:38 [UPDATED] => 2026-04-13 17:14:10 [PHRASE_ID] => 2 [PHRASE] => тестовая вторая фраза [USER_ID] => 1 [PROJECT_ID] => 1 [FIELDS] => Array ( [0] => Array ( ) ) ) ... ) [message] => Operation is successful [time] => 17:37:49 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776091069 )

2. Метод point.field

Назначение: Получает все поля точки (как заполненные, так и пустые) для указанного проекта.

Параметры запроса:

  • Обязательные:

    • project (int) - идентификатор проекта

    • point (int) - идентификатор точки

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: GET

Пример запроса:

$method = 'GET'; $action = 'point.field'; $data = array( 'project' => 1, 'point' => 31, ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [Материал] => Array ( [NAME] => Материал [TYPE] => enum [DEFAULT] => Сталь [VALUE] => ) [Назначение ] => Array ( [NAME] => Назначение [TYPE] => enum [DEFAULT] => Столб фонарный [VALUE] => ) [Форма] => Array ( [NAME] => Форма [TYPE] => enum [DEFAULT] => Круглая [VALUE] => ) [Число фонарей] => Array ( [NAME] => Число фонарей [TYPE] => enum [DEFAULT] => Четыре [VALUE] => ) ) [message] => Operation is successful [time] => 17:40:32 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776091232 )

3. Метод point.update

Назначение: Обновляет геодезические данные и атрибуты точки в проекте.

Параметры запроса:

  • Обязательные:

    • project (int) - идентификатор проекта

    • point (int) - идентификатор точки

    • auth (string) - токен авторизации пользователя

  • Необязательные:

    • b (double) - долгота в градусах (значение по умолчанию: 2147483647)

    • l (double) - широта в градусах (значение по умолчанию: 2147483647)

    • h (double) - высота в метрах (значение по умолчанию: 2147483647)

    • x (double) - координата X (восточное направление) в метрах (значение по умолчанию: 2147483647)

    • y (double) - координата Y (северное направление) в метрах (значение по умолчанию: 2147483647)

    • z (double) - координата Z (высота) в метрах (значение по умолчанию: 2147483647)

    • code (string) - код точки по кодификатору (значение по умолчанию: '')

    • is_reference (bool) - флаг опорной точки (значение по умолчанию: 0)

    • reference_id (int) - идентификатор опорной точки (если точка является опорной по сводной таблице)

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: PUT

Пример запроса:

$method = 'PATCH'; $action = 'point.update'; $data = array( 'project' => 1, 'point' => 1, 'code' => '100008', ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [ID] => 1 [ACTIVE] => 1 [MAC] => 00:11:22:33:44:55 [DEVICE] => test [MESSAGE] => [B] => 53.239992 [L] => 45.011034 [H] => 183.5802 [X] => 13540868.965219 [Y] => 30593313.731326 [Z] => 189.7846804373 [CODE] => 100008 [POINT_CHECKED] => 0 [IS_REFERENCE] => 0 [REFERENCE_ID] => [REFERENCE_TYPE] => [REFERENCE_NAME] => [TIMESTAMP] => 2026-04-07 13:25:38 [UPDATED] => 2026-04-13 17:42:49 [PHRASE_ID] => 2 [PHRASE] => тестовая вторая фраза [USER_ID] => 1 [PROJECT_ID] => 1 [FIELDS] => Array ( [0] => Array ( [NAME] => Вид [TYPE] => enum [DEFAULT] => На столбе [VALUE] => ) [1] => Array ( [NAME] => Наименование [TYPE] => string [DEFAULT] => Светофор [VALUE] => ) [2] => Array ( [NAME] => Объем материала [TYPE] => string [DEFAULT] => [VALUE] => ) [3] => Array ( [NAME] => Тип [TYPE] => string [DEFAULT] => [VALUE] => ) [4] => Array ( [NAME] => Требования к материалам [TYPE] => string [DEFAULT] => [VALUE] => ) ) ) [message] => Data modification success [time] => 17:42:49 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776091369 )

4. Метод point.upgrade

Назначение: Обновляет геодезические данные и атрибуты указанных точек в проекте.

Параметры запроса:

  • Обязательные:

    • project (int) - идентификатор проекта

    • points (array) - список точек с обновляемыми полями

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_ADMIN (только для администраторов)

Используемый HTTP-метод: PUT

Пример запроса:

$method = 'PATCH'; $action = 'point.upgrade'; $data = array( 'project' => 1, 'points' => [ 1 => [ 'CODE' => '100156' ], 2 => [ 'CODE' => '100156' ] ], 'code' => '100008', ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [1] => Array ( [ID] => 1 [ACTIVE] => 1 [MAC] => 00:11:22:33:44:55 [DEVICE] => test [MESSAGE] => [B] => 53.239992 [L] => 45.011034 [H] => 183.5802 [X] => 13540868.965219 [Y] => 30593313.731326 [Z] => 189.7846804373 [CODE] => 100156 [POINT_CHECKED] => 0 [IS_REFERENCE] => 0 [REFERENCE_ID] => [REFERENCE_TYPE] => [REFERENCE_NAME] => [TIMESTAMP] => 2026-04-07 13:25:38 [UPDATED] => 2026-04-13 17:48:45 [PHRASE_ID] => 2 [PHRASE] => тестовая вторая фраза [USER_ID] => 1 [PROJECT_ID] => 1 [FIELDS] => Array ( [0] => Array ( [NAME] => Материал [TYPE] => enum [DEFAULT] => Сталь [VALUE] => ) [1] => Array ( [NAME] => Назначение [TYPE] => enum [DEFAULT] => Столб фонарный [VALUE] => ) [2] => Array ( [NAME] => Форма [TYPE] => enum [DEFAULT] => Круглая [VALUE] => ) [3] => Array ( [NAME] => Число фонарей [TYPE] => enum [DEFAULT] => Четыре [VALUE] => ) ) ) [2] => Array ( [ID] => 2 [ACTIVE] => 1 [MAC] => 00:11:22:33:44:55 [DEVICE] => test [MESSAGE] => [B] => 53.23999 [L] => 45.011033 [H] => 183.377 [X] => 13541037.464764 [Y] => 30593296.086595 [Z] => 189.58148195129 [CODE] => 100156 [POINT_CHECKED] => 0 [IS_REFERENCE] => 0 [REFERENCE_ID] => [REFERENCE_TYPE] => [REFERENCE_NAME] => [TIMESTAMP] => 2026-04-07 13:25:38 [UPDATED] => 2026-04-13 17:48:45 [PHRASE_ID] => 2 [PHRASE] => тестовая вторая фраза [USER_ID] => 1 [PROJECT_ID] => 1 [FIELDS] => Array ( [0] => Array ( [NAME] => Материал [TYPE] => enum [DEFAULT] => Сталь [VALUE] => ) [1] => Array ( [NAME] => Назначение [TYPE] => enum [DEFAULT] => Столб фонарный [VALUE] => ) [2] => Array ( [NAME] => Форма [TYPE] => enum [DEFAULT] => Круглая [VALUE] => ) [3] => Array ( [NAME] => Число фонарей [TYPE] => enum [DEFAULT] => Четыре [VALUE] => ) ) ) [3] => Array ( [ID] => 3 [ACTIVE] => 1 [MAC] => 00:11:22:33:44:55 [DEVICE] => test [MESSAGE] => [B] => 53.239987 [L] => 45.011032 [H] => 183.4508 [X] => 13541276.060305 [Y] => 30593249.918657 [Z] => 189.65528450813 [CODE] => [POINT_CHECKED] => 0 [IS_REFERENCE] => 0 [REFERENCE_ID] => [REFERENCE_TYPE] => [REFERENCE_NAME] => [TIMESTAMP] => 2026-04-07 13:25:38 [UPDATED] => 2026-04-13 17:14:10 [PHRASE_ID] => 2 [PHRASE] => тестовая вторая фраза [USER_ID] => 1 [PROJECT_ID] => 1 [FIELDS] => Array ( [0] => Array ( ) ) ) ... ) [message] => Data modification success [time] => 17:50:37 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776091837 )

5. Метод point.edit

Назначение: Предназначен для редактирования пользовательских полей точки проекта.

Параметры запроса:

  • Обязательные:

    • auth (string) - токен авторизации пользователя

  • Ожидаемые:

    • field (array) - массив пар ключ-значение для обновления полей

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: PATCH

Пример запроса:

$method = 'PATCH'; $action = 'point.edit'; $data = array( 'project' => 1, 'point' => 1, 'fields' => [ 'Тип' => 'Стандартный', 'Требования к материалам' => 'Нет' ], ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [Вид] => Array ( [NAME] => Вид [TYPE] => enum [DEFAULT] => На столбе [VALUE] => ) [Наименование] => Array ( [NAME] => Наименование [TYPE] => string [DEFAULT] => Светофор [VALUE] => ) [Объем материала] => Array ( [NAME] => Объем материала [TYPE] => string [DEFAULT] => [VALUE] => ) [Тип] => Array ( [NAME] => Тип [TYPE] => string [DEFAULT] => [VALUE] => Стандартный ) [Требования к материалам] => Array ( [NAME] => Требования к материалам [TYPE] => string [DEFAULT] => [VALUE] => Нет ) ) [message] => Data modification success [time] => 18:02:49 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776092569 )

6. Метод point.delete

Назначение: Удаляет точку из указанного проекта.

Параметры запроса:

  • Обязательные:

    • point (int) - идентификатор точки

    • project (int) - идентификатор проекта

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_ADMIN (только для администраторов)

Используемый HTTP-метод: DELETE

Пример запроса:

$method = 'DELETE'; $action = 'point.delete'; $data = array( 'project' => 1, 'point' => 31, ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( ... [31] => Array ( [ID] => 31 [ACTIVE] => 0 [MAC] => 00:11:22:33:44 [DEVICE] => asdf [MESSAGE] => $GNGGA,102522.00,5308.47049009,N,04501.87156702,E,1,11,2.0,160.796,M,4.728,M,,*41 [B] => 53.141174834833 [L] => 45.031192783667 [H] => 160.796 [X] => 18650823.60456 [Y] => 26485693.973002 [Z] => 167.07348521426 [CODE] => 100156 [POINT_CHECKED] => 1 [IS_REFERENCE] => 0 [REFERENCE_ID] => [REFERENCE_TYPE] => [REFERENCE_NAME] => [TIMESTAMP] => 2026-04-13 12:34:18 [UPDATED] => 2026-04-13 18:04:27 [PHRASE_ID] => 7 [PHRASE] => опора фонарная с четыремя фонарями [USER_ID] => 1 [PROJECT_ID] => 1 [FIELDS] => Array ( [0] => Array ( [NAME] => Материал [TYPE] => enum [DEFAULT] => Сталь [VALUE] => ) [1] => Array ( [NAME] => Назначение [TYPE] => enum [DEFAULT] => Столб фонарный [VALUE] => ) [2] => Array ( [NAME] => Форма [TYPE] => enum [DEFAULT] => Круглая [VALUE] => ) [3] => Array ( [NAME] => Число фонарей [TYPE] => enum [DEFAULT] => Четыре [VALUE] => ) ) ) ) [message] => Successful deletion [time] => 18:04:27 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776092667 )

Особенности реализации

Система координат:

  • Поддерживает географические координаты (B, L, H) в градусах и метрах

  • Поддерживает прямоугольные координаты (X, Y, Z) в метрах

Безопасность:

  • Все методы требуют аутентификации

  • Разграничение прав доступа между обычными пользователями и администраторами

Класс Project

Общее описание

Класс Project является контроллером для управления проектами пользователей в системе. Наследуется от базового класса Controller и предоставляет REST API для полного жизненного цикла проектов, включая создание, получение, обновление и удаление.


Методы класса

1. Метод project.add

Назначение: Создает новый проект для компании пользователя с возможностью указания названия, описания и системы координат (датума).

Параметры запроса:

  • Обязательные:

    • name (string) - название проекта

    • auth (string) - токен авторизации пользователя

  • Необязательные:

    • date_start (string) - дата начала работы над проектом (по умолчанию текущая дата)

    • date_stop (string) - дата планового окончания работ над проектом

    • description (string) - описание проекта

    • datum (string) - название датума (системы координат)

Требуемый уровень доступа: ACCESS_ADMIN (только для администраторов)

Используемый HTTP-метод: POST

Пример запроса:

$method = 'POST'; $action = 'project.add'; $data = array( 'name' => 'test', 'description' => 'test project', 'date_stop' => '15.06.2026', ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 201 Ответ сервера: Array ( [result] => Array ( [ID] => 10 [ACTIVE] => 1 [DATE_START] => 2026-04-13 [DATE_STOP] => 2026-06-15 [DATE_CLOSE] => [STAGE] => new [NAME] => test [DESCRIPTION] => test project [COMPANY_ID] => 1 [DATUM_NAME] => [TIMESTAMP] => 2026-04-13 18:19:29 [UPDATED] => 2026-04-13 18:19:29 [USERS] => Array ( [0] => Array ( [NAME] => Первый пользователь [ROLE] => creator ) ) [STATUS_NAME] => Новый проект ) [message] => Resource created successfully [time] => 18:19:29 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776093569 )

2. Метод project.get

Назначение: Получает список проектов с поддержкой расширенной фильтрации, сортировки и пагинации на стороне сервера.

Параметры запроса:

  • Обязательные:

    • auth (string) - токен авторизации пользователя

  • Необязательные:

    • select (array) - массив полей выборки данных

    • filter (array) - массив полей отбора данных (поддреживаются условие "или" и спецсимволы для строк и чисел: _, %, !, <=, >=, <, >)

    • order (array) - массив пар ключ-значение для сортировки данных

    • limit (int) - число больше 0 для ограничения количества отбираемых данных

    • start (int) - смещение для пагинации

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: GET

Пример запроса:

$method = 'GET'; $action = 'project.get'; $data = array( 'select' => ['ID', 'NAME', 'DATUM_NAME'], 'filter' => ['LOGIC' => 'or', 'ID' => '>9', 'NAME' => 'new%'], 'order' => ['NAME' => 'desc'], ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [0] => Array ( [ID] => 10 [NAME] => test [DATUM_NAME] => ) [1] => Array ( [ID] => 9 [NAME] => new project [DATUM_NAME] => ) ) [message] => Operation is successful [time] => 18:34:51 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776094491 )

3. Метод project.update

Назначение: Обновляет основные атрибуты существующего проекта.

Параметры запроса:

  • Обязательные:

    • id (int) - идентификатор проекта

    • auth (string) - токен авторизации пользователя

  • Необязательные:

    • name (string) - новое название проекта

    • date_start (string) - дата начала работы над проектом

    • date_stop (string) - дата планового окончания работ над проектом

    • date_close (string) - дата фактического окончания работ над проектом

    • description (string) - описание проекта

    • stage (string) - текущая стадия проекта

Требуемый уровень доступа: ACCESS_ADMIN (только для администраторов)

Используемый HTTP-метод: PATCH

Пример запроса:

$method = 'PATCH'; $action = 'project.update'; $data = array( 'id' => 10, 'date_close' => '14.04.2026', 'stage' => 'success', ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [ID] => 10 [ACTIVE] => 1 [DATE_START] => 2026-04-13 [DATE_STOP] => 2026-06-15 [DATE_CLOSE] => 2026-04-14 [STAGE] => success [NAME] => test [DESCRIPTION] => test project [COMPANY_ID] => 1 [DATUM_NAME] => [TIMESTAMP] => 2026-04-13 18:19:29 [UPDATED] => 2026-04-13 18:43:50 [USERS] => Array ( [0] => Array ( [NAME] => Первый пользователь [ROLE] => creator ) ) [STATUS_NAME] => Проект выполнен ) [message] => Data modification success [time] => 18:43:50 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776095030 )

4. Метод project.delete

Назначение: Полностью удаляет проект и все связанные с ним данные из системы.

Параметры запроса:

  • Обязательные:

    • id (int) - идентификатор проекта

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_ADMIN (только для администраторов)

Используемый HTTP-метод: DELETE

Пример запроса:

$method = 'DELETE'; $action = 'project.delete'; $data = array( 'id' => 10 ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответы:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [10] => Array ( [ID] => 10 [ACTIVE] => 0 [DATE_START] => 2026-04-13 [DATE_STOP] => 2026-06-15 [DATE_CLOSE] => 2026-04-14 [STAGE] => success [NAME] => test [DESCRIPTION] => test project [COMPANY_ID] => 1 [DATUM_NAME] => [TIMESTAMP] => 2026-04-13 18:19:29 [UPDATED] => 2026-04-13 18:44:46 [USERS] => Array ( [0] => Array ( [NAME] => Первый пользователь [ROLE] => creator ) ) [STATUS_NAME] => Проект выполнен ) ) [message] => Data modification success [time] => 18:44:46 13.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776095086 )

Особенности реализации

Управление доступом:

  • Двухуровневая система: ACCESS_AUTH для основных операций, ACCESS_ADMIN для управления проектами

  • Контекст компании: Автоматическое определение компании пользователя при создании проектов

Обработка данных:

  • Гибкая фильтрация: Поддержка сложных условий отбора через ArrayManager

  • Пагинация: Реализация ограничения выборки через START и LIMIT параметры

  • Нормализация: Автоматическое приведение ключей фильтров и сортировки к верхнему регистру

Класс Reference

Общее описание

Класс Reference является контроллером для управления опорными геодезическими пунктами в системе. Наследуется от базового класса Controller и предоставляет базовый REST API для работы с опорными пунктами - фундаментальными точками в геодезических сетях, используемыми как основа для геодезических измерений.


Методы класса

1. Метод reference.get

Назначение: Получает список всех опорных пунктов, доступных в системе.

Параметры запроса:

  • Обязательные:

    • auth (string) - токен авторизации пользователя

  • Необязательные:

    • select (array) - массив полей выборки данных

    • filter (array) - массив полей отбора данных (поддреживаются условие "или" и спецсимволы для строк и чисел: _, %, !, <=, >=, <, >)

    • order (array) - массив пар ключ-значение для сортировки данных

    • limit (int) - число больше 0 для ограничения количества отбираемых данных

    • start (int) - смещение для пагинации

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: GET

Пример запроса:

$method = 'GET'; $action = 'reference.get'; $data = array( 'filter' => [ 'X' => '>0', 'Y' => '>0' ], 'limit' => 3, ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [BS] => Array ( [0] => Array ( [ID] => 6681 [TYPE] => BS [NAME] => VOSK [1] [CODE] => [STATUS] => Работает [DESCRIPTION] => [DISTRICT] => Воскресенск [SUBJECT] => [B] => 55.32166243 [L] => 38.66075347 [H] => 154.794 [X] => 2840209.3181 [Y] => 2272244.2984 [Z] => 5221967.884 [TIMESTAMP] => 2025-12-18 12:53:36 [TYPE_DESCRIPTION] => ) [1] => Array ( [ID] => 6682 [TYPE] => BS [NAME] => VOSK [1] [CODE] => [STATUS] => Работает [DESCRIPTION] => [DISTRICT] => Воскресенск [SUBJECT] => [B] => 55.32166243 [L] => 38.66075347 [H] => 154.794 [X] => 2840209.3181 [Y] => 2272244.2984 [Z] => 5221967.884 [TIMESTAMP] => 2025-12-18 12:53:36 [TYPE_DESCRIPTION] => ) [2] => Array ( [ID] => 6683 [TYPE] => BS [NAME] => DLGR [5] [CODE] => [STATUS] => Работает [DESCRIPTION] => [DISTRICT] => Долгоруково [SUBJECT] => [B] => 52.32393416 [L] => 38.33988408 [H] => 225.745 [X] => 3064146.735 [Y] => 2423382.518 [Z] => 5025092.689 [TIMESTAMP] => 2025-12-18 12:53:36 [TYPE_DESCRIPTION] => ) ) [GGS] => Array ( [0] => Array ( [ID] => 50 [TYPE] => GGS [NAME] => 305-1 [CODE] => [STATUS] => [DESCRIPTION] => ! ГГС/2 кл./пир./ [DISTRICT] => [SUBJECT] => [B] => 53.576756 [L] => 43.340389 [H] => [X] => 1319342.46 [Y] => 424195.99 [Z] => 257.23 [TIMESTAMP] => 2025-12-18 12:48:42 [TYPE_DESCRIPTION] => ) [1] => Array ( [ID] => 51 [TYPE] => GGS [NAME] => 344-1 [CODE] => [STATUS] => [DESCRIPTION] => ! ГГС/2 кл./пир./ [DISTRICT] => [SUBJECT] => [B] => 53.70841 [L] => 43.180179 [H] => [X] => 1308703.4 [Y] => 438817.2 [Z] => 250.7 [TIMESTAMP] => 2025-12-18 12:48:42 [TYPE_DESCRIPTION] => ) [2] => Array ( [ID] => 52 [TYPE] => GGS [NAME] => 349GGSL [CODE] => [STATUS] => [DESCRIPTION] => ! ГГС/2 кл./пир./ [DISTRICT] => [SUBJECT] => [B] => 53.737495 [L] => 43.387222 [H] => [X] => 1322359.61 [Y] => 442099.39 [Z] => 223.68 [TIMESTAMP] => 2025-12-18 12:48:42 [TYPE_DESCRIPTION] => ) ) [OMS] => Array ( [0] => Array ( [ID] => 1 [TYPE] => OMS [NAME] => 111-5 [CODE] => [STATUS] => [DESCRIPTION] => Гусевка/2 кл./пир./ [DISTRICT] => [SUBJECT] => [B] => 52.926507 [L] => 42.520634 [H] => [X] => 1264508.94 [Y] => 351920.36 [Z] => 206.41 [TIMESTAMP] => 2025-12-18 12:48:42 [TYPE_DESCRIPTION] => ) [1] => Array ( [ID] => 2 [TYPE] => OMS [NAME] => 110 [CODE] => [STATUS] => [DESCRIPTION] => Пересыпкино 2-е/2 кл./пир./ [DISTRICT] => [SUBJECT] => [B] => 52.909286 [L] => 42.838288 [H] => [X] => 1285865.99 [Y] => 349894.15 [Z] => 196.17 [TIMESTAMP] => 2025-12-18 12:48:42 [TYPE_DESCRIPTION] => ) [2] => Array ( [ID] => 3 [TYPE] => OMS [NAME] => 116 [CODE] => [STATUS] => [DESCRIPTION] => Козьмодемьяновка/2 кл./пир./ [DISTRICT] => [SUBJECT] => [B] => 52.934999 [L] => 42.687722 [H] => [X] => 1275750.52 [Y] => 352795.88 [Z] => 198.12 [TIMESTAMP] => 2025-12-18 12:48:42 [TYPE_DESCRIPTION] => ) ) ) [message] => Operation is successful [time] => 11:33:04 14.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776155584 )

Класс Relation

Общее описание

Класс Relation является контроллером для управления связями пользователей и проектной структурой (проекты, задачи, точки, сказанный фразы). Наследуется от базового класса Controller и предоставляет полный REST API для работы с пользовательскими связями. Класс представляет расширение методов взаимодействия с проектом, поэтому все методы вызываются в формате "project.relation.метод".


Методы класса

1. Метод relation.add

Назначение: Регистрирует новую связь пользователя с проектом и проверяет доступность данного действия. Может восстанавливать активность ранее удалённой связи.

Параметры запроса:

  • Обязательные:

    • project (int) - идентификатор проекта

    • user (int) - идентификатор пользователя

    • role (string) - название роли пользователя в проекте

    • auth (string) - токен авторизации (обязателен при приглашении в компанию)

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: POST

Примеры запроса:

$method = 'POST'; $action = 'project.relation.add'; $data = array( 'project' => 9, 'user' => 2, 'role' => 'responsible', ); $headers = array( 'Authorization: ' . USER_TOKEN );
HTTP код: 201 Ответ сервера: Array ( [result] => Array ( [ID] => 6 [ACTIVE] => 1 [ROLE] => responsible [USER_ID] => 2 [PROJECT_ID] => 9 [TIMESTAMP] => 2026-04-14 11:55:24 [UPDATED] => 2026-04-14 11:55:24 [ROLE_DESCRIPTION] => Исполнитель ) [message] => Resource created successfully [time] => 11:55:24 14.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776156924 )

2. Метод relation.get

Назначение: Получает и отображает по идентификатору проекта пользовательские связи.

Параметры запроса:

  • Обязательные:

    • project (int) - идентификатор проекта

    • auth (string) - токен авторизации (обязателен при приглашении в компанию)

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: GET

Примеры запроса:

$method = 'GET'; $action = 'project.relation.get'; $data = array( 'project' => 9, ); $headers = array( 'Authorization: ' . USER_TOKEN );
HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [2] => Array ( [ID] => 2 [ACTIVE] => 1 [ROLE] => creator [USER_ID] => 1 [PROJECT_ID] => 9 [TIMESTAMP] => 2026-04-06 13:34:54 [UPDATED] => 2026-04-06 13:34:54 [ROLE_DESCRIPTION] => Постановщик ) [6] => Array ( [ID] => 6 [ACTIVE] => 1 [ROLE] => responsible [USER_ID] => 2 [PROJECT_ID] => 9 [TIMESTAMP] => 2026-04-14 11:55:24 [UPDATED] => 2026-04-14 11:55:24 [ROLE_DESCRIPTION] => Исполнитель ) ) [message] => Operation is successful [time] => 11:56:31 14.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776156991 )

3. Метод relation.role

Назначение: Выводит список доступных ролей пользовательских связей с проектами вместе с названием и описанием.

Параметры запроса:

  • Обязательные:

    • project (int) - идентификатор проекта

    • auth (string) - токен авторизации (обязателен при приглашении в компанию)

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: GET

Примеры запроса:

$method = 'GET'; $action = 'project.relation.role'; $data = array(); $headers = array( 'Authorization: ' . USER_TOKEN );
HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [creator] => Array ( [NAME] => creator [DESCRIPTION] => Постановщик ) [header] => Array ( [NAME] => header [DESCRIPTION] => Руководитель ) [observer] => Array ( [NAME] => observer [DESCRIPTION] => Наблюдатель ) [responsible] => Array ( [NAME] => responsible [DESCRIPTION] => Исполнитель ) ) [message] => Operation is successful [time] => 11:56:57 14.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776157017 )

4. Метод relation.update

Назначение: Обновляет роль пользователя в ранее созданной связи с проектом.

Параметры запроса:

  • Обязательные:

    • project (int) - идентификатор проекта

    • relation (int) - идентификатор связи пользователя с проектом

    • role (string) - название роли пользователя в проекте

    • auth (string) - токен авторизации (обязателен при приглашении в компанию)

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: PATCH

Примеры запроса:

$method = 'PATCH'; $action = 'project.relation.update'; $data = array( 'project' => 9, 'relation' => 6, 'role' => 'header', ); $headers = array( 'Authorization: ' . USER_TOKEN );
HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [ID] => 6 [ACTIVE] => 1 [ROLE] => header [USER_ID] => 2 [PROJECT_ID] => 9 [TIMESTAMP] => 2026-04-14 11:55:24 [UPDATED] => 2026-04-14 11:57:50 [ROLE_DESCRIPTION] => Руководитель ) [message] => Data modification success [time] => 12:07:20 14.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776157640 )

5. Метод relation.delete

Назначение: Удаляет ранее зарегистрированную связь пользователя с проектом через состояния активности связи.

Параметры запроса:

  • Обязательные:

    • project (int) - идентификатор проекта

    • relation (int) - идентификатор связи пользователя с проектом

    • auth (string) - токен авторизации (обязателен при приглашении в компанию)

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: DELETE

Примеры запроса:

$method = 'DELETE'; $action = 'project.relation.delete'; $data = array( 'project' => 9, 'relation' => 6, ); $headers = array( 'Authorization: ' . USER_TOKEN );
HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [2] => Array ( [ID] => 2 [ACTIVE] => 1 [ROLE] => creator [USER_ID] => 1 [PROJECT_ID] => 9 [TIMESTAMP] => 2026-04-06 13:34:54 [UPDATED] => 2026-04-06 13:34:54 [ROLE_DESCRIPTION] => Постановщик ) [6] => Array ( [ID] => 6 [ACTIVE] => 0 [ROLE] => header [USER_ID] => 2 [PROJECT_ID] => 9 [TIMESTAMP] => 2026-04-14 11:55:24 [UPDATED] => 2026-04-14 12:08:22 [ROLE_DESCRIPTION] => Руководитель ) ) [message] => Successful deletion [time] => 12:08:22 14.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776157702 )

Класс Task

Общее описание

Класс Task является контроллером для управления пользовательскими задачи в проеках. Наследуется от базового класса Controller и предоставляет полный REST API для работы с задачами.


Методы класса

1. Метод task.add

Назначение:

Параметры запроса:

  • Обязательные:

    • project (int) - идентификатор проекта

    • name (string) - название задачи

    • auth (string) - токен авторизации пользователя

  • Необязательные:

    • date_start (string) - дата начала работы над задачей (по умолчанию текущая дата)

    • date_stop (string) - дата планового окончания работ над задачей

    • description (string) - описание задачи

    • responsible (int) - идентификатор пользователя, ответственного за задачу

Требуемый уровень доступа: ACCESS_ADMIN (только для администраторов)

Используемый HTTP-метод: POST

Примеры запроса:

$method = 'POST'; $action = 'task.add'; $data = array( 'project' => 9, 'name' => 'Тестовая задача для пользователя', 'description' => 'Проверочная задача', 'date_start' => '14.05.2026', 'date_stop' => '16.05.2026', 'responsible' => 2, ); $headers = array();
HTTP код: 201 Ответ сервера: Array ( [result] => Array ( [ID] => 4 [ACTIVE] => 1 [PROJECT_ID] => 9 [COMPANY_ID] => 1 [DATE_START] => 2026-05-14 [DATE_STOP] => 2026-05-16 [DATE_CLOSE] => [NAME] => Тестовая задача для пользователя [DESCRIPTION] => Проверочная задача [STAGE] => new [CREATOR_ID] => 1 [RESPONSIBLE_ID] => 2 [TIMESTAMP] => 2026-04-14 12:56:30 [UPDATED] => 2026-04-14 12:56:30 ) [message] => Resource created successfully [time] => 12:56:30 14.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776160590 )

2. Метод task.get

Назначение:

Параметры запроса:

  • Обязательные:

    • auth (string) - токен авторизации (обязателен при приглашении в компанию)

  • Необязательные:

    • select (array) - массив полей выборки данных

    • filter (array) - массив полей отбора данных (поддреживаются условие "или" и спецсимволы для строк и чисел: _, %, !, <=, >=, <, >)

    • order (array) - массив пар ключ-значение для сортировки данных

    • limit (int) - число больше 0 для ограничения количества отбираемых данных

    • start (int) - смещение для пагинации

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: GET

Примеры запроса:

$method = 'GET'; $action = 'task.get'; $data = array( 'filter' => [ 'PROJECT_ID' => 9 ], ); $headers = array();
HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [4] => Array ( [ID] => 4 [ACTIVE] => 1 [PROJECT_ID] => 9 [COMPANY_ID] => 1 [DATE_START] => 2026-05-14 [DATE_STOP] => 2026-05-16 [DATE_CLOSE] => [NAME] => Тестовая задача для пользователя [DESCRIPTION] => Проверочная задача [STAGE] => new [CREATOR_ID] => 1 [RESPONSIBLE_ID] => 2 [TIMESTAMP] => 2026-04-14 12:56:30 [UPDATED] => 2026-04-14 12:56:30 ) ) [message] => Operation is successful [time] => 13:00:10 14.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776160810 )

3. Метод task.update

Назначение:

Параметры запроса:

  • Обязательные:

    • id (int) - идентификатор задачи

    • project (int) - идентификатор проекта

    • auth (string) - токен авторизации пользователя

  • Необязательные:

    • name (string) - новое название задачи

    • date_start (string) - дата начала работы над задачей

    • date_stop (string) - дата планового окончания работ над задачей

    • date_close (string) - дата фактического окончания работ над задачей

    • description (string) - описание задачи

    • stage (string) - текущая стадия задачи

    • responsible (int) - идентификатор пользователя, ответственного за задачу

Требуемый уровень доступа: ACCESS_ADMIN (только для администраторов)

Используемый HTTP-метод: PATCH

Примеры запроса:

$method = 'PATCH'; $action = 'task.update'; $data = array( 'id' => 4, 'project' => 9, 'name' => 'Тестовая задача (проверена)', ); $headers = array();
HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [ID] => 4 [ACTIVE] => 1 [PROJECT_ID] => 9 [COMPANY_ID] => 1 [DATE_START] => 2026-05-14 [DATE_STOP] => 2026-05-16 [DATE_CLOSE] => [NAME] => Тестовая задача (проверена) [DESCRIPTION] => Проверочная задача [STAGE] => new [CREATOR_ID] => 1 [RESPONSIBLE_ID] => 2 [TIMESTAMP] => 2026-04-14 12:56:30 [UPDATED] => 2026-04-14 13:08:49 ) [message] => Data modification success [time] => 13:08:49 14.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776161329 )

4. Метод task.delete

Назначение:

Параметры запроса:

  • Обязательные:

    • id (int) - идентификатор задачи

    • project (int) - идентификатор проекта

    • auth (string) - токен авторизации (обязателен при приглашении в компанию)

Требуемый уровень доступа: ACCESS_ADMIN (только для администраторов)

Используемый HTTP-метод: DELETE

Примеры запроса:

$method = 'DELETE'; $action = 'task.delete'; $data = array( 'id' => 4, 'project' => 9, ); $headers = array();
HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [4] => Array ( [ID] => 4 [ACTIVE] => 0 [PROJECT_ID] => 9 [COMPANY_ID] => 1 [DATE_START] => 2026-05-14 [DATE_STOP] => 2026-05-16 [DATE_CLOSE] => [NAME] => Тестовая задача (проверена) [DESCRIPTION] => Проверочная задача [STAGE] => new [CREATOR_ID] => 1 [RESPONSIBLE_ID] => 2 [TIMESTAMP] => 2026-04-14 12:56:30 [UPDATED] => 2026-04-14 13:12:41 ) ) [message] => Data modification success [time] => 13:12:41 14.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776161561 )

5. Метод task.restore

Назначение:

Параметры запроса:

  • Обязательные:

    • id (int) - идентификатор задачи

    • project (int) - идентификатор проекта

    • auth (string) - токен авторизации (обязателен при приглашении в компанию)

Требуемый уровень доступа: ACCESS_ADMIN (только для администраторов)

Используемый HTTP-метод: POST

Примеры запроса:

$method = 'POST'; $action = 'task.restore'; $data = array( 'id' => 4, 'project' => 9, ); $headers = array();
HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [4] => Array ( [ID] => 4 [ACTIVE] => 1 [PROJECT_ID] => 9 [COMPANY_ID] => 1 [DATE_START] => 2026-05-14 [DATE_STOP] => 2026-05-16 [DATE_CLOSE] => [NAME] => Тестовая задача (проверена) [DESCRIPTION] => Проверочная задача [STAGE] => new [CREATOR_ID] => 1 [RESPONSIBLE_ID] => 2 [TIMESTAMP] => 2026-04-14 12:56:30 [UPDATED] => 2026-04-14 13:18:00 ) ) [message] => Data modification success [time] => 13:18:00 14.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776161880 )

Класс User

Общее описание

Класс User является финальным (final) контроллером для управления пользователями в системе. Наследуется от базового класса Controller и предоставляет полный REST API для работы с пользователями.


Методы класса

1. Метод user.add

Назначение: Регистрирует нового пользователя в системе.

Параметры запроса:

  • Обязательные:

    • uid (string) - уникальный идентификатор пользователя authentik

    • name (string) - краткое имя пользователя authentik

    • auth (string) - токен авторизации authentik

  • Необязательные:

    • admin (bool) - статус администратора для нового пользователя

    • position (int) - занимаемая должность в компании

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей через сервер авторизации)

Используемый HTTP-метод: POST

Примеры запроса:

$method = 'POST'; $action = 'user.add'; $data = array( 'uid' => 'g-5h89y=hq8=g35g89w-956', 'name' => 'Тестовый пользователь', 'admin' => false, 'position' => 3, ); $headers = array();
HTTP код: 200 Ответ сервера: Array ( [result] => 3 [message] => Resource created successfully [time] => 13:29:04 14.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776162544 )

2. Метод user.get

Назначение: Получает список пользователей с поддержкой расширенной фильтрации, сортировки и пагинации.

Параметры запроса:

  • Обязательные:

    • auth (string) - токен авторизации пользователя

  • Необязательные:

    • select (array) - массив полей выборки данных

    • filter (array) - массив полей отбора данных (поддреживаются условие "или" и спецсимволы для строк и чисел: _, %, !, <=, >=, <, >)

    • order (array) - массив пар ключ-значение для сортировки данных

    • limit (int) - число больше 0 для ограничения количества отбираемых данных

    • start (int) - смещение для пагинации

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: GET

Пример запроса:

$method = 'GET'; $action = 'user.get'; $data = array( 'filter' => [ 'ID' => '!1', ], ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => Array ( [2] => Array ( [ID] => 2 [UID] => 2 [NAME] => Второй пользователь [ACTIVE] => 1 [ADMIN] => 1 [POSITION_ID] => 2 [DELETED] => 0 [COMPANY_ID] => 1 [REGISTRATION] => 2026-04-06 19:11:09 [TIMESTAMP] => 2026-04-06 19:11:50 ) [3] => Array ( [ID] => 3 [UID] => g-5h89y=hq8=g35g89w-956 [NAME] => Тестовый пользователь [ACTIVE] => 1 [ADMIN] => 0 [POSITION_ID] => 3 [DELETED] => 0 [COMPANY_ID] => 1 [REGISTRATION] => [TIMESTAMP] => 2026-04-14 13:29:04 ) ) [message] => Operation is successful [time] => 13:31:58 14.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776162718 )

3. Метод user.update

Назначение: Обновляет данные существующего пользователя с поддержкой частичного обновления.

Параметры запроса:

  • Обязательные:

    • auth (string) - токен авторизации пользователя

  • Необязательные (хотя бы один должен быть указан):

    • id (int) - идентификатор пользователя в компании

    • admin (bool) - статус администратора для нового пользователя

    • position (int) - занимаемая должность в компании

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: PATCH

Пример запроса:

$method = 'PATCH'; $action = 'user.update'; $data = array( 'id' => 3, 'admin' => true, ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => [message] => Data modification success [time] => 13:36:07 14.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776162967 )

4. Метод user.delete

Назначение: Удаляет пользователя из компании.

Параметры запроса:

  • Обязательные:

    • id (int) - идентификатор пользователя в компании

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: DELETE

Пример запроса:

$method = 'DELETE'; $action = 'user.delete'; $data = array( 'id' => 3 ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => [message] => Successful deletion [time] => 14:10:05 14.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776165005 )

5. Метод user.restore

Назначение: Восстанавливает пользователя из компании со всеми данными.

Параметры запроса:

  • Обязательные:

    • id (int) - идентификатор пользователя в компании

    • auth (string) - токен авторизации пользователя

Требуемый уровень доступа: ACCESS_AUTH (для авторизованных пользователей)

Используемый HTTP-метод: DELETE

Пример запроса:

$method = 'POST'; $action = 'user.restore'; $data = array( 'id' => 3 ); $headers = array( 'Authorization: ' . USER_TOKEN );

Ответ:

HTTP код: 200 Ответ сервера: Array ( [result] => [message] => Operation is successful [time] => 14:12:27 14.04.2026 [timezone] => Etc/GMT-3 [timestamp] => 1776165147 )