ADM — примеры
Что здесь: блоки примеров запросов/ответов ручек сервиса ADM, вынесенные из
endpoints/ADM.md. Сигнатуры и типы — там же и вschemas/ADM.md.
BanReasons
GET /BanReasons
Пример запроса:
GET /banreasons
Пример успешного ответа:
{
"1": {
"code": "VIOLATION",
"name": "Нарушение правил",
"description": "Пользователь нарушил правила использования системы"
},
"2": {
"code": "INACTIVITY",
"name": "Неактивность",
"description": "Длительное отсутствие активности"
}
}
Capabilities
GET /Capabilities
Пример запроса:
GET /capabilities
Пример успешного ответа:
{
"1": {
"code": "CAPABILITY_1",
"name": "Возможность 1",
"weightCoefficient": 1.0
},
"2": {
"code": "CAPABILITY_2",
"name": "Возможность 2",
"weightCoefficient": 1.5
}
}
DefaultPages
GET /DefaultPages
Пример запроса:
GET /defaultpages?applicationID=3
Пример успешного ответа:
[
{
"tenantID": 1,
"code": "dashboard",
"version": null,
"nameRu": "Рабочий стол",
"resourceID": null,
"resourceNameRu": null
},
{
"tenantID": 1,
"code": "custom.package.code",
"version": "1.0.0",
"nameRu": "Пакетная стартовая страница",
"resourceID": 16,
"resourceNameRu": "Портал"
}
]
GeolocationSettings
GET /GeolocationSettings/coordinateAccuracy
Пример запроса:
GET /geolocationsettings/coordinateAccuracy
Пример успешного ответа:
[
{
"id": 1,
"name": "Высокая точность",
"description": "Точность до 5 метров"
},
{
"id": 2,
"name": "Средняя точность",
"description": "Точность до 50 метров"
}
]
Invitations
POST /Invitations
Пример запроса:
POST /invitations
[
{
"userTemplateID": 1,
"description": "Приглашение для нового сотрудника",
"validTill": "2025-12-31T23:59:59Z",
"isPublic": true,
"allowSelfRegistration": true
}
]
Пример успешного ответа:
[
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"tenantID": 1
}
]
PUT /Invitations
Пример запроса:
PUT /invitations
[
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"description": "Обновленное описание приглашения",
"validTill": "2026-12-31T23:59:59Z"
}
]
Пример успешного ответа:
HTTP 202 Accepted
DELETE /Invitations
Пример запроса:
DELETE /invitations
[
"123e4567-e89b-12d3-a456-426614174000",
"223e4567-e89b-12d3-a456-426614174001"
]
Пример успешного ответа:
HTTP 202 Accepted
GET /Invitations/{id}
Пример запроса:
GET /invitations/123e4567-e89b-12d3-a456-426614174000
Пример успешного ответа:
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"pinCode": "123456",
"description": "Приглашение для нового сотрудника",
"isForSupport": false,
"userTemplate": {
"id": 1,
"name": "Шаблон инженера"
},
"validTill": "2025-12-31T23:59:59Z"
}
DELETE /Invitations/{id}
Пример запроса:
DELETE /invitations/123e4567-e89b-12d3-a456-426614174000
Пример успешного ответа:
HTTP 202 Accepted
GET /Invitations/{id}/short
Пример запроса:
GET /invitations/123e4567-e89b-12d3-a456-426614174000/short
Пример успешного ответа:
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"description": "Приглашение для нового сотрудника",
"isPublic": true,
"allowSelfRegistration": true,
"tenant": {
"id": 1,
"name": "Компания"
},
"validTill": "2025-12-31T23:59:59Z"
}
Этот метод доступен без аутентификации.
PermissionApiTags
GET /PermissionApiTags
Пример запроса:
GET /permissionapitags
Пример успешного ответа:
{
"1": [
{
"permissionApiID": 10,
"code": "TAG_1",
"description": "Тег 1"
},
{
"permissionApiID": 11,
"code": "TAG_2",
"description": "Тег 2"
}
]
}
PermissionExtTags
GET /PermissionExtTags
Пример запроса:
GET /permissionexttags
Пример успешного ответа:
{
"1": [
{
"permissionExtID": 10,
"code": "TAG_1",
"description": "Тег 1"
},
{
"permissionExtID": 11,
"code": "TAG_2",
"description": "Тег 2"
}
]
}
PermissionsApi
GET /PermissionsApi
Пример запроса:
GET /permissionsapi
Пример успешного ответа:
{
"1": {
"code": "USER_GET",
"description": "Получение информации о пользователе"
},
"2": {
"code": "USER_ADD",
"description": "Добавление пользователя"
}
}
PermissionsExt
GET /PermissionsExt
Пример запроса:
GET /permissionsext
Пример успешного ответа:
{
"1": {
"code": "EXT_FEATURE_1",
"description": "Расширенное полномочие 1"
},
"2": {
"code": "EXT_FEATURE_2",
"description": "Расширенное полномочие 2"
}
}
PermissionsUi
GET /PermissionsUi
Пример запроса:
GET /permissionsui
Пример успешного ответа:
{
"1": {
"code": "UI_FEATURE_1",
"description": "UI полномочие 1",
"isSystem": false
},
"2": {
"code": "UI_FEATURE_2",
"description": "UI полномочие 2",
"isSystem": true
}
}
Возвращает только неудаленные полномочия.
POST /PermissionsUi
Пример запроса:
POST /permissionsui
[
{
"code": "UI_NEW_FEATURE",
"description": "Новое UI полномочие",
"mustBeAssignedToRole": true
}
]
Пример успешного ответа:
[1]
PUT /PermissionsUi
Пример запроса:
PUT /permissionsui
[
{
"id": 1,
"description": "Обновленное описание",
"mustBeAssignedToRole": false
}
]
Пример успешного ответа:
HTTP 202 Accepted
DELETE /PermissionsUi
Пример запроса:
DELETE /permissionsui
[1, 2, 3]
Пример успешного ответа:
HTTP 202 Accepted
GET /PermissionsUi/{id}
Пример запроса:
GET /permissionsui/1
Пример успешного ответа:
{
"code": "UI_FEATURE_1",
"description": "UI полномочие 1",
"isSystem": false,
"mustBeAssignedToRole": true,
"allowReadonlyOnly": false,
"allowRewritableOnly": false,
"deleted": false
}
Метод возвращает данные, включая помеченные как удаленные.
DELETE /PermissionsUi/{id}
Пример запроса:
DELETE /permissionsui/1
Пример успешного ответа:
HTTP 202 Accepted
RoleApplications
POST /RoleApplications
Пример запроса:
POST /roleapplications
[
{
"tenantID": 1,
"roleID": 1,
"applicationID": 10
},
{
"tenantID": 1,
"roleID": 1,
"applicationID": 11
}
]
Пример успешного ответа:
[
{
"tenantID": 1,
"roleID": 1,
"applicationID": 10
},
{
"tenantID": 1,
"roleID": 1,
"applicationID": 11
}
]
DELETE /RoleApplications
Пример запроса:
DELETE /roleapplications
[
{
"tenantID": 1,
"roleID": 1,
"applicationID": 10
}
]
Пример успешного ответа:
HTTP 202 Accepted
RoleAttachments
POST /RoleAttachments
Пример запроса:
POST /roleattachments
[
{
"roleID": 1,
"attachmentID": 10
},
{
"roleID": 1,
"attachmentID": 11
}
]
Пример успешного ответа:
[
{
"roleID": 1,
"attachmentID": 10
},
{
"roleID": 1,
"attachmentID": 11
}
]
DELETE /RoleAttachments
Пример запроса:
DELETE /roleattachments
[
{
"roleID": 1,
"attachmentID": 10
}
]
Пример успешного ответа:
HTTP 202 Accepted
RolePermissionsApi
POST /RolePermissionsApi
Пример запроса:
POST /rolepermissionsapi
[
{
"roleID": 1,
"permissionApiID": 10
},
{
"roleID": 1,
"permissionApiID": 11
}
]
Пример успешного ответа:
[
{
"roleID": 1,
"permissionApiID": 10
},
{
"roleID": 1,
"permissionApiID": 11
}
]
DELETE /RolePermissionsApi
Пример запроса:
DELETE /rolepermissionsapi
[
{
"roleID": 1,
"permissionApiID": 10
}
]
Пример успешного ответа:
HTTP 202 Accepted
RolePermissionsExt
POST /RolePermissionsExt
Пример запроса:
POST /rolepermissionsext
[
{
"roleID": 1,
"permissionExtID": 10
},
{
"roleID": 1,
"permissionExtID": 11
}
]
Пример успешного ответа:
[
{
"roleID": 1,
"permissionExtID": 10
},
{
"roleID": 1,
"permissionExtID": 11
}
]
DELETE /RolePermissionsExt
Пример запроса:
DELETE /rolepermissionsext
[
{
"roleID": 1,
"permissionExtID": 10
}
]
Пример успешного ответа:
HTTP 202 Accepted
RolePermissionsUi
POST /RolePermissionsUi
Пример запроса:
POST /rolepermissionsui
[
{
"roleID": 1,
"permissionUiID": 10
},
{
"roleID": 1,
"permissionUiID": 11
}
]
Пример успешного ответа:
[
{
"roleID": 1,
"permissionUiID": 10
},
{
"roleID": 1,
"permissionUiID": 11
}
]
DELETE /RolePermissionsUi
Пример запроса:
DELETE /rolepermissionsui
[
{
"roleID": 1,
"permissionUiID": 10
}
]
Пример успешного ответа:
HTTP 202 Accepted
RoleTaskListQueries
POST /RoleTaskListQueries
Пример запроса:
POST /roletasklistqueries
[
{
"roleID": 1,
"taskListQueryID": 10
},
{
"roleID": 1,
"taskListQueryID": 11
}
]
Пример успешного ответа:
[
{
"roleID": 1,
"taskListQueryID": 10
},
{
"roleID": 1,
"taskListQueryID": 11
}
]
DELETE /RoleTaskListQueries
Пример запроса:
DELETE /roletasklistqueries
[
{
"roleID": 1,
"taskListQueryID": 10
}
]
Пример успешного ответа:
HTTP 202 Accepted
RoleTaskPropertiesAccess
POST /RoleTaskPropertiesAccess/attributes
Пример запроса:
POST /roletaskpropertiesaccess/attributes
[
{
"roleID": 1,
"attributeID": 10,
"isAccessable": true,
"isDefault": false
}
]
Пример успешного ответа:
HTTP 201 Created
PUT /RoleTaskPropertiesAccess/attributes
Пример запроса:
PUT /roletaskpropertiesaccess/attributes
[
{
"roleID": 1,
"attributeID": 10,
"isAccessable": false,
"isDefault": true
}
]
Пример успешного ответа:
HTTP 202 Accepted
Roles
GET /Roles
Пример запроса:
GET /roles?isDeleted=false
Пример успешного ответа:
[
{
"id": 1,
"name": "Администратор",
"description": "Роль администратора системы",
"deleted": false
},
{
"id": 2,
"name": "Менеджер",
"description": "Роль менеджера",
"deleted": false
}
]
POST /Roles
Пример запроса:
POST /roles
[
{
"name": "Новая роль",
"description": "Описание новой роли"
}
]
Пример успешного ответа:
[1, 2]
PUT /Roles
Пример запроса:
PUT /roles
[
{
"id": 1,
"name": "Обновленное название",
"description": "Обновленное описание"
}
]
Пример успешного ответа:
HTTP 202 Accepted
DELETE /Roles
Пример запроса:
DELETE /roles
[1, 2, 3]
Пример успешного ответа:
HTTP 202 Accepted
POST /Roles/copy
Пример запроса:
POST /roles/copy
[
{
"sourceRoleID": 1,
"name": "Копия роли администратора"
}
]
Пример успешного ответа:
[3]
GET /Roles/{id}
Пример запроса:
GET /roles/1
Пример успешного ответа:
{
"id": 1,
"name": "Администратор",
"description": "Роль администратора системы",
"deleted": false,
"permissions": [
"USER_VIEW",
"USER_EDIT",
"ROLE_MANAGE"
]
}
DELETE /Roles/{id}
Пример запроса:
DELETE /roles/1
Пример успешного ответа:
HTTP 202 Accepted
GET /Roles/{roleID}/applications
Пример запроса:
GET /roles/1/applications
Пример успешного ответа:
{
"1": {
"applicationCode": "WEB",
"applicationName": "Веб-приложение"
},
"2": {
"applicationCode": "MOBILE",
"applicationName": "Мобильное приложение"
}
}
GET /Roles/{roleID}/attachments
Пример запроса:
GET /roles/1/attachments
Пример успешного ответа:
{
"1": {
"fileName": "document.pdf",
"description": "Документация",
"isUploaded": true,
"publicUrl": "https://example.com/files/document.pdf",
"mimeType": "application/pdf",
"size": 1024000,
"created": "2024-01-01T00:00:00Z"
}
}
GET /Roles/{roleID}/packages
Пример запроса:
GET /roles/1/packages?searchText=модуль
Пример успешного ответа:
{
"1": {
"id": 1,
"packageID": 10,
"packageVersion": "1.0.0",
"packageName": "Модуль отчетности",
"isEnabled": true,
"resource": {
"url": "https://example.com/resource"
}
}
}
POST /Roles/{roleID}/packages
Пример запроса:
POST /roles/1/packages
[
{
"packageID": 10,
"packageVersion": "1.0.0"
}
]
Пример успешного ответа:
[
{
"roleID": 1,
"id": 5,
"packageID": 10,
"packageVersion": "1.0.0"
}
]
DELETE /Roles/{roleID}/packages
Пример запроса:
DELETE /roles/1/packages
[1, 2, 3]
Пример успешного ответа:
HTTP 202 Accepted
PUT /Roles/{roleID}/packages/activate
Пример запроса:
PUT /roles/1/packages/activate
[1, 2, 3]
Пример успешного ответа:
HTTP 202 Accepted
PUT /Roles/{roleID}/packages/deactivate
Пример запроса:
PUT /roles/1/packages/deactivate
[1, 2, 3]
Пример успешного ответа:
HTTP 202 Accepted
GET /Roles/{roleID}/permissionsApi
Пример запроса:
GET /roles/1/permissionsApi?isCheckedPermission=true
Пример успешного ответа:
{
"1": [
{
"permissionApiID": 1,
"code": "USER_VIEW",
"description": "Просмотр пользователей",
"isChecked": true,
"systemTag": {
"code": "USERS",
"description": "Управление пользователями"
}
}
]
}
GET /Roles/{roleID}/permissionsExt
Пример запроса:
GET /roles/1/permissionsExt?isCheckedPermission=true
Пример успешного ответа:
{
"1": [
{
"permissionExtID": 1,
"code": "TASK_ASSIGN",
"description": "Назначение заявок",
"isChecked": true,
"systemTag": {
"code": "TASKS",
"description": "Управление заявками"
}
}
]
}
GET /Roles/{roleID}/permissionsUi
Пример запроса:
GET /roles/1/permissionsUi?isCheckedPermission=true
Пример успешного ответа:
{
"1": [
{
"permissionUiID": 1,
"capabilityID": 1,
"code": "USER_VIEW",
"description": "Просмотр пользователей",
"isChecked": true,
"isSystem": false,
"systemTag": {
"code": "USERS",
"description": "Управление пользователями"
}
}
]
}
SystemPermissionUiTags
GET /SystemPermissionUiTags
Пример запроса:
GET /systempermissionuitags
Пример успешного ответа:
{
"1": [
{
"permissionUiID": 10,
"code": "TAG_1",
"description": "Тег 1"
},
{
"permissionUiID": 11,
"code": "TAG_2",
"description": "Тег 2"
}
]
}
TenantCreationRequests
POST /TenantCreationRequests
Пример запроса:
POST /tenantcreationrequests
{
"name": "Новая компания",
"uriName": "new-company",
"fullName": "ООО Новая компания",
"email": "admin@newcompany.com"
}
Пример успешного ответа:
{
"id": "abc123"
}
GET /TenantCreationRequests/{id}
Пример запроса:
GET /tenantcreationrequests/abc123
Пример успешного ответа:
{
"id": "abc123",
"approved": false,
"processed": false,
"created": "2024-01-15T10:00:00Z",
"rejected": false,
"rejectionReason": null,
"tenant": null
}
Этот метод доступен без аутентификации.
PUT /TenantCreationRequests/{id}/approve
Пример запроса:
PUT /tenantcreationrequests/abc123/approve
Пример успешного ответа:
HTTP 202 Accepted
Доступно только для кросс-тенантных администраторов.
PUT /TenantCreationRequests/{id}/reject
Пример запроса:
PUT /tenantcreationrequests/abc123/reject
{
"rejectionReason": "Недостаточно информации для создания тенанта"
}
Пример успешного ответа:
HTTP 202 Accepted
Доступно только для кросс-тенантных администраторов.
TenantMembers
POST /TenantMembers
Пример запроса:
POST /tenantmembers
[
{
"accountID": 456,
"userID": 789,
"description": "Новый член тенанта",
"validTill": "2025-12-31T23:59:59Z"
}
]
Пример успешного ответа:
[123]
PUT /TenantMembers
Пример запроса:
PUT /tenantmembers
[
{
"id": 123,
"description": "Обновленное описание",
"validTill": "2026-12-31T23:59:59Z"
}
]
Пример успешного ответа:
HTTP 202 Accepted
DELETE /TenantMembers
Пример запроса:
DELETE /tenantmembers
[123, 124, 125]
Пример успешного ответа:
HTTP 202 Accepted
GET /TenantMembers/anonymousUser
Пример запроса:
GET /tenantmembers/anonymousUser
Пример успешного ответа:
{
"id": 123,
"accountID": 456,
"userID": 789,
"description": "Анонимный пользователь"
}
GET /TenantMembers/apiUser
Пример запроса:
GET /tenantmembers/apiUser
Пример успешного ответа:
{
"id": 123,
"accountID": 456,
"userID": 789,
"description": "API пользователь"
}
GET /TenantMembers/this
Пример запроса:
GET /tenantmembers/this
Пример успешного ответа:
{
"id": 123,
"accountID": 456,
"userID": 789,
"description": "Основной член тенанта",
"validTill": "2025-12-31T23:59:59Z"
}
GET /TenantMembers/{tenantMemberID}
Пример запроса:
GET /tenantmembers/123
Пример успешного ответа:
{
"id": 123,
"accountID": 456,
"userID": 789,
"description": "Основной член тенанта",
"validTill": "2025-12-31T23:59:59Z",
"account": {
"id": 456,
"email": "user@example.com",
"login": "user"
},
"user": {
"id": 789,
"firstName": "Иван",
"lastName": "Петров"
}
}
Пример ошибки:
[
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "TENANT_MEMBER_NOT_FOUND",
"message": "Член тенанта с ID 999 не найден"
}
]
DELETE /TenantMembers/{tenantMemberID}
Пример запроса:
DELETE /tenantmembers/123
Пример успешного ответа:
HTTP 202 Accepted
TenantSettings
GET /TenantSettings
Пример запроса:
GET /tenantsettings?tenantMemberId=123
Пример успешного ответа:
{
"geoDataRetentionMonths": 12,
"supportEmail": "support@example.com",
"supportPhone": "+7 (999) 123-45-67",
"storageApiUrl": "https://storage.example.com/api",
"storageUrl": "https://storage.example.com",
"defaultCurrency": {
"id": 1,
"shortName": "RUB"
},
"defaultTimezoneID": 1,
"defaultMailBoxID": 1,
"realm": "example"
}
Пример ошибки:
[
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "SETTINGS_ERROR",
"message": "Ошибка при получении настроек"
}
]
GET /TenantSettings/plateUrl
Пример запроса:
GET /tenantsettings/this/plateUrl?taskTemplateID=123
Пример успешного ответа:
"https://plate.hubex.ru"
PUT /TenantSettings/plateUrl
Пример запроса:
PUT /tenantsettings/this/plateUrl?plateUrl=https://client-domain.ru
NULL
Если параметр plateUrl не передали, будет сохранен NULL.
Пример успешного ответа:
HTTP 202 Accepted
Tenants
GET /Tenants
Пример запроса:
GET /tenants
Пример успешного ответа:
[
{
"id": 1,
"name": "Моя компания",
"uriName": "my-company",
"banned": null,
"owner": {
"tenantMemberID": 1,
"userID": 123
},
"accounts": [
{
"id": 456,
"email": "user@example.com"
}
]
}
]
PUT /Tenants/licenses
Пример запроса:
PUT /tenants/licenses
{
"id": 1,
"dateFrom": "2024-01-01T00:00:00Z",
"dateTill": "2025-12-31T23:59:59Z",
"payment": {
"payer": "ООО Обновленная компания",
"tin": "1234567890"
}
}
Пример успешного ответа:
HTTP 202 Accepted
GET /Tenants/templates
Пример запроса:
GET /tenants/templates
Пример успешного ответа:
[
{
"id": 1,
"name": "Шаблонный тенант",
"uriName": "template-tenant"
}
]
GET /Tenants/this
Пример запроса:
GET /tenants/this
Пример успешного ответа:
{
"id": 1,
"name": "Моя компания",
"uriName": "my-company",
"fullName": "ООО Моя компания",
"owner": {
"tenantMemberID": 1,
"userID": 123,
"accountID": 456
}
}
GET /Tenants/this/featureFlags
Пример запроса:
GET /tenants/this/featureFlags
Пример успешного ответа:
[
"FEATURE_NEW_UI",
"FEATURE_ADVANCED_REPORTS",
"FEATURE_MOBILE_APP"
]
GET /Tenants/this/licenses
Пример запроса:
GET /tenants/this/licenses?validOn=2024-01-15T00:00:00Z
Пример успешного ответа:
[
{
"id": 1,
"license": {
"code": "BASIC",
"name": "Базовая лицензия"
},
"type": {
"id": 1,
"name": "Техническая"
},
"dateFrom": "2024-01-01T00:00:00Z",
"dateTill": "2024-12-31T23:59:59Z",
"status": {
"id": 1,
"name": "Активна"
},
"total": {
"techniciansCount": 10,
"companiesCount": 5
},
"remaining": {
"techniciansCount": 8,
"companiesCount": 3
}
}
]
POST /Tenants/this/licenses
Пример запроса:
POST /tenants/this/licenses
{
"licenseID": 1,
"dateFrom": "2024-01-01T00:00:00Z",
"dateTill": "2024-12-31T23:59:59Z",
"payment": {
"payer": "ООО Компания",
"tin": "1234567890",
"email": "payment@example.com"
}
}
Пример успешного ответа:
HTTP 201 Created
DELETE /Tenants/this/licenses
Пример запроса:
DELETE /tenants/this/licenses
[1, 2, 3]
Пример успешного ответа:
HTTP 202 Accepted
POST /Tenants/this/licenses/renewal
Пример запроса:
POST /tenants/this/licenses/renewal
Пример успешного ответа:
HTTP 200 OK
Пример ошибки:
[
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "LICENSE_RENEWAL_ERROR",
"message": "Ошибка при отправке запроса на продление"
}
]
DELETE /Tenants/this/licenses/{id}
Пример запроса:
DELETE /tenants/this/licenses/1
Пример успешного ответа:
HTTP 202 Accepted
GET /Tenants/this/meta
Пример запроса:
GET /tenants/this/meta
Пример успешного ответа:
{
"version": "1.0.0",
"features": ["feature1", "feature2"],
"settings": {
"theme": "dark",
"language": "ru"
}
}
POST /Tenants/this/packages
Пример запроса:
POST /tenants/this/packages
{
"packageID": 1,
"packageVersion": "1.0.0"
}
Пример успешного ответа:
[
{
"id": 1,
"package": {
"packageID": 1,
"packageVersion": "1.0.0",
"packageName": "Расширение отчетности"
}
}
]
PATCH /Tenants/this/packages
Пример запроса:
PATCH /tenants/this/packages
{
"packageID": 1,
"packageVersion": "1.0.0",
"newPackageVersion": "1.1.0"
}
Пример успешного ответа:
HTTP 202 Accepted
DELETE /Tenants/this/packages
Пример запроса:
DELETE /tenants/this/packages
{
"packageID": 1,
"packageVersion": "1.0.0"
}
Пример успешного ответа:
HTTP 202 Accepted
POST /Tenants/this/packages/tenant
Пример запроса:
POST /tenants/this/packages/tenant
{
"packageID": 1,
"packageVersion": "1.0.0"
}
Пример успешного ответа:
[
{
"id": 1,
"package": {
"packageID": 1,
"packageVersion": "1.0.0",
"packageName": "Расширение отчетности"
}
}
]
DELETE /Tenants/this/packages/tenant
Пример запроса:
DELETE /tenants/this/packages/tenant
{
"packageID": 1,
"packageVersion": "1.0.0"
}
Пример успешного ответа:
HTTP 202 Accepted
GET /Tenants/this/variables
Пример запроса:
GET /tenants/this/variables
Пример успешного ответа:
{
"API_URL": {
"name": "API_URL",
"value": "https://api.example.com",
"description": "URL API сервиса"
},
"DB_CONNECTION": {
"name": "DB_CONNECTION",
"value": "Server=localhost;Database=HubEx",
"description": "Строка подключения к БД"
}
}
POST /Tenants/this/variables
Пример запроса:
POST /tenants/this/variables
[
{
"name": "API_URL",
"value": "https://api.example.com",
"description": "URL API сервиса"
},
{
"name": "DB_CONNECTION",
"value": "Server=localhost;Database=HubEx",
"description": "Строка подключения к БД"
}
]
Пример успешного ответа:
HTTP 201 Created
PUT /Tenants/this/variables
Пример запроса:
PUT /tenants/this/variables
[
{
"name": "API_URL",
"value": "https://new-api.example.com",
"description": "Обновленный URL API сервиса"
}
]
Пример успешного ответа:
HTTP 202 Accepted
DELETE /Tenants/this/variables
Пример запроса:
DELETE /tenants/this/variables
["API_URL", "DB_CONNECTION"]
Пример успешного ответа:
HTTP 202 Accepted
DELETE /Tenants/this/variables/{name}
Пример запроса:
DELETE /tenants/this/variables/API_URL
Пример успешного ответа:
HTTP 202 Accepted
UserAssetListQueries
POST /UserAssetListQueries
Пример запроса:
POST /userassetlistqueries
[
{
"userID": 123,
"data": [10, 11]
},
{
"userID": 124,
"data": [10]
}
]
Пример успешного ответа:
[
{
"assetListQueryID": 10,
"userID": 123
},
{
"assetListQueryID": 11,
"userID": 123
},
{
"assetListQueryID": 10,
"userID": 124
}
]
DELETE /UserAssetListQueries
Пример запроса:
DELETE /userassetlistqueries
[
{
"userID": 123,
"data": [10, 11]
}
]
Пример успешного ответа:
HTTP 202 Accepted
POST /UserAssetListQueries/{userID}
Пример запроса:
POST /userassetlistqueries/123
[10, 11, 12]
Пример успешного ответа:
[
{
"assetListQueryID": 10,
"userID": 123
},
{
"assetListQueryID": 11,
"userID": 123
},
{
"assetListQueryID": 12,
"userID": 123
}
]
DELETE /UserAssetListQueries/{userID}
Пример запроса:
DELETE /userassetlistqueries/123
[10, 11]
Пример успешного ответа:
HTTP 202 Accepted
UserDisabledNotifications
POST /UserDisabledNotifications
Пример запроса:
POST /userdisablednotifications
{
"userID": 123,
"data": [
{
"providerID": 1,
"isOn": false
},
{
"providerID": 2,
"isOn": true
}
]
}
Пример успешного ответа:
[
{
"providerID": 1,
"isOn": false
},
{
"providerID": 2,
"isOn": true
}
]
Пример ошибки:
[
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "NOTIFICATION_UPDATE_ERROR",
"message": "Ошибка при изменении настроек уведомлений"
}
]
UserDistricts
POST /UserDistricts
Пример запроса:
POST /userdistricts
{
"userID": 123,
"data": [
{
"districtID": 1,
"isPrimary": true
},
{
"districtID": 2,
"isPrimary": false
}
]
}
Пример успешного ответа:
{
"123": [1, 2]
}
Пример ошибки:
[
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "DISTRICT_ADD_ERROR",
"message": "Ошибка при добавлении участков"
}
]
PUT /UserDistricts
Пример запроса:
PUT /userdistricts
{
"userID": 123,
"data": [
{
"districtID": 1,
"isPrimary": false
}
]
}
Пример успешного ответа:
HTTP 202 Accepted
Пример ошибки:
[
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "DISTRICT_UPDATE_ERROR",
"message": "Ошибка при обновлении участков"
}
]
DELETE /UserDistricts
Пример запроса:
DELETE /userdistricts
{
"userID": 123,
"data": [1, 2, 3]
}
Пример успешного ответа:
HTTP 202 Accepted
Пример ошибки:
[
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "DISTRICT_DELETE_ERROR",
"message": "Ошибка при удалении участков"
}
]
UserOrderBy
GET /UserOrderBy
Пример запроса:
GET /userorderby
Пример успешного ответа:
{
"1": {
"name": "По имени",
"code": "BY_NAME"
},
"2": {
"name": "По дате регистрации",
"code": "BY_REGISTRATION_DATE"
}
}
UserRoles
POST /UserRoles
Пример запроса:
POST /userroles
[
{
"userID": 123,
"roleIDs": [1, 2]
},
{
"userID": 124,
"roleIDs": [1]
}
]
Пример успешного ответа:
{
"123": [1, 2],
"124": [1]
}
Пример ошибки:
[
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "ROLE_ADD_ERROR",
"message": "Ошибка при добавлении ролей"
}
]
DELETE /UserRoles
Пример запроса:
DELETE /userroles
[
{
"userID": 123,
"roleIDs": [1, 2]
}
]
Пример успешного ответа:
HTTP 202 Accepted
Пример ошибки:
[
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "ROLE_DELETE_ERROR",
"message": "Ошибка при удалении ролей"
}
]
UserTags
POST /UserTags
Пример запроса:
POST /usertags
[
{
"userID": 123,
"tags": ["VIP", "Менеджер"]
}
]
Пример успешного ответа:
[
{
"userID": 123,
"tags": "VIP"
},
{
"userID": 123,
"tags": "Менеджер"
}
]
Пример ошибки:
[
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "TAG_CONFLICT",
"message": "Тег уже существует для пользователя"
}
]
DELETE /UserTags
Пример запроса:
DELETE /usertags
[
{
"userID": 123,
"tags": ["VIP"]
}
]
Пример успешного ответа:
HTTP 202 Accepted
UserTaskListQueries
POST /UserTaskListQueries
Пример запроса:
POST /usertasklistqueries
[
{
"userID": 123,
"taskListQueryID": 10
},
{
"userID": 123,
"taskListQueryID": 11
}
]
Пример успешного ответа:
[
{
"taskListQueryID": 10,
"userID": 123
},
{
"taskListQueryID": 11,
"userID": 123
}
]
DELETE /UserTaskListQueries
Пример запроса:
DELETE /usertasklistqueries
[
{
"userID": 123,
"taskListQueryID": 10
}
]
Пример успешного ответа:
HTTP 202 Accepted
UserTemplateDistricts
POST /UserTemplateDistricts
Пример запроса:
POST /usertemplatedistricts
[
{
"id": 1,
"data": [10, 11]
},
{
"id": 2,
"data": [10]
}
]
Пример успешного ответа:
{
"1": [10, 11],
"2": [10]
}
Пример ошибки:
[
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "DISTRICT_ADD_ERROR",
"message": "Ошибка при добавлении участков к шаблону"
}
]
DELETE /UserTemplateDistricts/remove
Пример запроса:
DELETE /usertemplatedistricts/remove
[
{
"id": 1,
"data": [10, 11]
}
]
Пример успешного ответа:
HTTP 202 Accepted
Пример ошибки:
[
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "DISTRICT_REMOVE_ERROR",
"message": "Ошибка при удалении участков из шаблона"
}
]
UserTemplateRoles
POST /UserTemplateRoles
Пример запроса:
POST /usertemplateroles
[
{
"id": 1,
"data": [10, 11]
},
{
"id": 2,
"data": [10]
}
]
Пример успешного ответа:
{
"1": [10, 11],
"2": [10]
}
Пример ошибки:
[
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "ROLE_ADD_ERROR",
"message": "Ошибка при добавлении ролей к шаблону"
}
]
DELETE /UserTemplateRoles/remove
Пример запроса:
DELETE /usertemplateroles/remove
[
{
"id": 1,
"data": [10, 11]
}
]
Пример успешного ответа:
HTTP 202 Accepted
Пример ошибки:
[
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "ROLE_REMOVE_ERROR",
"message": "Ошибка при удалении ролей из шаблона"
}
]
UserTemplates
POST /UserTemplates
Пример запроса:
POST /usertemplates
[
{
"name": "Новый шаблон инженера",
"description": "Описание шаблона",
"isTechnician": true,
"defaultLocationID": 10
}
]
Пример успешного ответа:
[1]
PUT /UserTemplates
Пример запроса:
PUT /usertemplates
[
{
"id": 1,
"name": "Обновленное название",
"description": "Обновленное описание",
"defaultLocationID": 11
}
]
Пример успешного ответа:
HTTP 202 Accepted
Пример ошибки:
[
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "TEMPLATE_CONFLICT",
"message": "Конфликт при обновлении шаблона"
}
]
DELETE /UserTemplates
Пример запроса:
DELETE /usertemplates
[1, 2, 3]
Пример успешного ответа:
HTTP 202 Accepted
GET /UserTemplates/{id}
Пример запроса:
GET /usertemplates/1
Пример успешного ответа:
{
"id": 1,
"name": "Шаблон инженера",
"description": "Шаблон для инженеров",
"isTechnician": true,
"isTeam": false,
"isCustomer": false,
"defaultLocation": {
"id": 10,
"address": "Москва, ул. Примерная, 1"
},
"mobility": {
"id": 1,
"name": "Мобильный"
},
"geoTrackingMode": {
"id": 1,
"name": "Автоматический"
}
}
DELETE /UserTemplates/{id}
Пример запроса:
DELETE /usertemplates/1
Пример успешного ответа:
HTTP 202 Accepted
GET /UserTemplates/{id}/districts
Пример запроса:
GET /usertemplates/1/districts
Пример успешного ответа:
[
{
"id": 1,
"name": "Центральный участок"
},
{
"id": 2,
"name": "Северный участок"
}
]
GET /UserTemplates/{id}/roles
Пример запроса:
GET /usertemplates/1/roles
Пример успешного ответа:
[
{
"id": 1,
"name": "Инженер"
},
{
"id": 2,
"name": "Менеджер"
}
]
UserWarehouses
POST /UserWarehouses
Пример запроса:
POST /userwarehouses
[
{
"userID": 123,
"warehouseID": 1
},
{
"userID": 123,
"warehouseID": 2
}
]
Пример успешного ответа:
{
"123": [1, 2]
}
Пример ошибки:
[
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "WAREHOUSE_ADD_ERROR",
"message": "Ошибка при добавлении складов"
}
]
⚠️ Устаревший метод: Используйте POST /WH/WarehouseUser/s
DELETE /UserWarehouses
Пример запроса:
DELETE /userwarehouses
[
{
"userID": 123,
"warehouseID": 1
}
]
Пример успешного ответа:
HTTP 202 Accepted
Пример ошибки:
[
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "WAREHOUSE_DELETE_ERROR",
"message": "Ошибка при удалении складов"
}
]
⚠️ Устаревший метод: Используйте DELETE /WH/WarehouseUser/
Users
POST /Users
Пример запроса:
POST /users?skipAccountVerification=false
{
"firstName": "Иван",
"middleName": "Николаевич",
"lastName": "Реван",
"sexID": 1,
"email": "japose9395@combcub.com",
"mobilePhone": null,
"workPhone": null,
"isTechnician": true,
"isTeam": false,
"isCustomer": true,
"mobilityID": 1,
"geotrackingModeID": 1,
"isBanned": false,
"banReasonID": null,
"banTill": null,
"isEmailVerified": false,
"isMobilePhoneVerified": false,
"companyID": 2,
"rate": 1500.00,
"rateCurrencyID": 1
}
Пример успешного ответа:
{
"userID": 123,
"accountID": 456,
"tenantMemberID": 789
}
Пример ошибки:
[
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "USER_ALREADY_EXISTS",
"message": "Пользователь с таким email уже существует"
}
]
DELETE /Users
Пример запроса:
DELETE /users
[123, 456, 789]
Пример успешного ответа:
HTTP 202 Accepted
Пример ошибки:
[
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "USER_HAS_ACTIVE_TASKS",
"message": "Невозможно удалить пользователя с ID 123, у которого есть активные заявки"
}
]
POST /Users/addbyintegration
Пример запроса:
POST /users/addbyintegration?skipAccountVerification=false
{
"firstName": "Иван",
"middleName": "Николаевич",
"lastName": "Реван",
"sexID": 1,
"email": "japose9395@combcub.com",
"mobilePhone": null,
"workPhone": null,
"isTechnician": true,
"isTeam": false,
"isCustomer": true,
"mobilityID": 1,
"geotrackingModeID": 1,
"isBanned": false,
"banReasonID": null,
"banTill": null,
"isEmailVerified": false,
"isMobilePhoneVerified": false,
"companyID": 2,
"rate": 1500.00,
"rateCurrencyID": 1
}
Пример успешного ответа:
[
{
"userID": 123,
"roleID": 1
}
]
Пример ошибки:
[
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "USER_ALREADY_EXISTS",
"message": "Пользователь с таким email уже существует"
}
]
POST /Users/anonymous
Пример запроса:
POST /users/anonymous
Пример успешного ответа:
{
"userID": 123,
"tenantMemberID": 456
}
POST /Users/api
Пример запроса:
POST /users/api
Пример успешного ответа:
{
"userID": 123,
"tenantMemberID": 456
}
GET /Users/attributes
Пример запроса:
GET /users/attributes?userID=123&attributeID=1
Пример успешного ответа:
[
{
"tenantID": 1,
"userID": 123,
"attributeID": 1,
"attributeName": "Специализация",
"value": "Электрика",
"domain": {
"id": 1,
"name": "Технические навыки",
"code": "TECH_SKILLS"
}
}
]
POST /Users/attributes
Пример запроса:
POST /users/attributes
[
{
"userID": 123,
"data": {
"attributeID": 1,
"value": "Электрика"
}
}
]
Пример успешного ответа:
HTTP 201 Created
PUT /Users/attributes
Пример запроса:
PUT /users/attributes
[
{
"userID": 123,
"data": {
"attributeID": 1,
"value": "Сантехника"
}
}
]
Пример успешного ответа:
HTTP 202 Accepted
DELETE /Users/attributes
Пример запроса:
DELETE /users/attributes
[
{
"userID": 123,
"data": 1
}
]
Пример успешного ответа:
HTTP 202 Accepted
POST /Users/changeToCustomer
Пример запроса:
POST /users/changeToCustomer
[123, 456, 789]
Пример успешного ответа:
HTTP 202 Accepted
Пример ошибки:
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "USER_NOT_FOUND",
"message": "Пользователь с ID 999 не найден"
}
POST /Users/changeToStaff
Пример запроса:
POST /users/changeToStaff
[123, 456, 789]
Пример успешного ответа:
HTTP 202 Accepted
Пример ошибки:
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "USER_NOT_FOUND",
"message": "Пользователь с ID 999 не найден"
}
POST /Users/defaultPages
Пример запроса:
POST /users/defaultPages
[
{
"userID": 1,
"webPage": "dashboard",
"mobilePage": "tasks"
},
{
"userID": 2,
"webPage": "workorders",
"mobilePage": null
}
]
Успешный ответ
HTTP 201 Created, без тела.
PUT /Users/defaultPages
Пример запроса:
PUT /users/defaultPages
[
{
"userID": 123,
"webPage": "dashboard",
"mobilePage": "tasks"
},
{
"userID": 124,
"webPage": "workorders",
"mobilePage": null
}
]
Успешный ответ
HTTP 202 Accepted, без тела.
DELETE /Users/defaultPages
Пример запроса:
DELETE /users/defaultPages
[123, 124, 125]
Пример успешного ответа:
HTTP 202 Accepted
GET /Users/geolocation
Пример запроса:
GET /users/geolocation?userID=123
Пример успешного ответа:
[
{
"tenantID": 1,
"userID": 123,
"coordinateAccuracy": {
"id": 1,
"isDefault": true
}
}
]
POST /Users/geolocation
Пример запроса:
POST /users/geolocation
[
{
"userID": 123,
"coordinateAccuracyID": 1
}
]
Пример успешного ответа:
HTTP 201 Created
PUT /Users/geolocation
Пример запроса:
PUT /users/geolocation
[
{
"userID": 123,
"coordinateAccuracyID": 2
}
]
Пример успешного ответа:
HTTP 202 Accepted
GET /Users/profile
Пример запроса:
GET /users/profile?tenantMemberId=1&userId=123
Пример успешного ответа:
{
"userID": 123,
"firstName": "Иван",
"middleName": "Петрович",
"lastName": "Иванов",
"email": "ivan.ivanov@example.com",
"mobilePhone": "+79991234567",
"workPhone": "+74951234567",
"isEmailVerified": true,
"isMobilePhoneVerified": true,
"isTechnician": true,
"isTeam": false,
"isCustomer": false,
"avatarUrl": "https://storage.example.com/avatars/user123.jpg",
"isDelegationOn": false,
"averageRating": 4.5,
"sex": {
"id": 1,
"name": "Мужской"
},
"employments": [
{
"company": "ООО Пример",
"position": "Инженер",
"scheduleRuleID": 1,
"dateFrom": "2024-01-01T00:00:00Z",
"dateTill": "2024-12-31T23:59:59Z"
}
],
"geoTrackingMode": {
"id": 1,
"name": "Автоматический"
}
}
Пример ошибки:
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "USER_NOT_FOUND",
"message": "Пользователь не найден"
}
POST /Users/registration
Пример запроса:
POST /users/registration
{
"invitationID": "abc123",
"firstName": "Иван",
"middleName": "Петрович",
"lastName": "Иванов",
"email": "ivan.ivanov@example.com",
"mobilePhone": "+79991234567",
"accountDomainLogin": "DOMAIN\\username"
}
Пример успешного ответа:
{
"accountID": 456,
"tenantID": 1,
"userID": 123,
"verificationCodeRepeatTimeout": 60
}
Пример ошибки:
[
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "INVITATION_INVALID",
"message": "Приглашение недействительно или истекло"
}
]
POST /Users/registration/verify
Пример запроса:
POST /users/registration/verify
{
"tenantID": 1,
"accountID": 456
}
Пример успешного ответа:
{
"accountID": 456,
"tenantID": 1,
"userID": null,
"verificationCodeRepeatTimeout": 60
}
PUT /Users/restore
Пример запроса:
PUT /users/restore
[123, 456, 789]
Пример успешного ответа:
HTTP 202 Accepted
Пример ошибки:
[
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "USER_ALREADY_RESTORED",
"message": "Пользователь с ID 123 уже восстановлен"
}
]
GET /Users/this/assetListQueries
Пример запроса:
GET /users/this/assetListQueries
Пример успешного ответа:
{
"1": {
"id": 1,
"name": "Мои объекты",
"isDefault": true,
"isFavorite": false
}
}
GET /Users/this/geolocation
Пример запроса:
GET /users/this/geolocation
Пример успешного ответа:
{
"tenantID": 1,
"userID": 123,
"coordinateAccuracy": {
"id": 1,
"parametersJson": "{\"accuracy\": 10}",
"isDefault": true
}
}
GET /Users/this/notifications
Пример запроса:
GET /users/this/notifications
Пример успешного ответа:
{
"email": "user@example.com",
"mobilePhone": "+79991234567",
"providers": [
{
"id": 1,
"code": "EMAIL",
"name": "Email",
"isOn": true,
"isAvailableForUser": true
}
]
}
GET /Users/this/permissions/ext
Пример запроса:
GET /users/this/permissions/ext
Пример успешного ответа:
{
"1": "TASK_ASSIGN",
"2": "USER_MANAGE",
"3": "REPORT_VIEW"
}
GET /Users/this/permissions/ui
Пример запроса:
GET /users/this/permissions/ui
Пример успешного ответа:
{
"USER_VIEW": "READ",
"USER_EDIT": "WRITE",
"TASK_CREATE": "READ"
}
GET /Users/this/profile
Пример запроса:
GET /users/this/profile
Пример успешного ответа:
{
"userID": 123,
"firstName": "Иван",
"middleName": "Петрович",
"lastName": "Иванов",
"email": "ivan.ivanov@example.com",
"mobilePhone": "+79991234567",
"workPhone": "+74951234567",
"isEmailVerified": true,
"isMobilePhoneVerified": true,
"isTechnician": true,
"isTeam": false,
"isCustomer": false,
"avatarUrl": "https://storage.example.com/avatars/user123.jpg",
"isDelegationOn": false,
"averageRating": 4.5,
"sex": {
"id": 1,
"name": "Мужской"
},
"employments": [
{
"company": "ООО Пример",
"position": "Инженер",
"scheduleRuleID": 1,
"dateFrom": "2024-01-01T00:00:00Z",
"dateTill": "2024-12-31T23:59:59Z"
}
],
"geoTrackingMode": {
"id": 1,
"name": "Автоматический"
}
}
GET /Users/this/taskListQueries
Пример запроса:
GET /users/this/taskListQueries
Пример успешного ответа:
{
"1": {
"id": 1,
"name": "Мои заявки",
"isDefault": true,
"isFavorite": false
}
}
GET /Users/{UserID}/ratings
Пример запроса:
GET /users/123/ratings
Пример успешного ответа:
{
"technicianID": 123,
"averageRating": 4.5,
"maxMark": 5,
"ratingCriterias": [
{
"id": 1,
"name": "Качество работы",
"averageRating": 4.8,
"rating": [
{
"markNumber": 5,
"countOfTotal": 10,
"direction": 1
}
]
}
]
}
GET /Users/{id}
Пример запроса:
GET /users/123
Пример успешного ответа:
{
"firstName": "Иван",
"middleName": "Петрович",
"lastName": "Иванов",
"email": "ivan.ivanov@example.com",
"mobilePhone": "+79991234567",
"workPhone": "+74951234567",
"isEmailVerified": true,
"isMobilePhoneVerified": true,
"isTechnician": true,
"isTeam": false,
"isCustomer": false,
"avatarUrl": "https://storage.example.com/avatars/user123.jpg",
"teamUserID": null,
"lastSeen": "2024-01-15T14:30:00Z",
"rate": 1500.50,
"accountDomainLogin": "DOMAIN\\username",
"ban": null,
"defaultLocation": {
"id": 1,
"address": "г. Москва, ул. Примерная, д. 1",
"coordinate": "55.7558, 37.6173"
},
"actualLocation": {
"coordinate": "55.7558, 37.6173",
"actuality": "2024-01-15T14:30:00Z"
},
"mobility": {
"id": 1,
"name": "Мобильный"
},
"geoTrackingMode": {
"id": 1,
"name": "Автоматический"
},
"rating": {
"total": 4.5,
"totalTrendDirection": 1,
"timestamp": "2024-01-15T14:30:00Z"
},
"flags": {
"IsAllowedNestedDistricts": true
},
"sex": {
"id": 1,
"name": "Мужской"
},
"rateCurrency": {
"id": 1,
"shortName": "RUB",
"asciiCode": "RUB"
}
}
Пример ошибки:
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "USER_NOT_FOUND",
"message": "Пользователь с ID 999 не найден"
}
PUT /Users/{id}
Пример запроса:
PUT /users/3
{
"firstName": "Anonymous",
"middleName": "",
"lastName": "",
"sexID": 3,
"email": "",
"mobilePhone": "",
"workPhone": "",
"isTechnician": null,
"mobilityID": null,
"geotrackingModeID": null,
"rate": null,
"rateCurrencyID": null
}
Пример успешного ответа:
HTTP 202 Accepted
Пример ошибки:
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "USER_NOT_FOUND",
"message": "Пользователь с ID 999 не найден"
}
GET /Users/{id}/assetListQueries
Пример запроса:
GET /users/123/assetListQueries
Пример успешного ответа:
{
"1": {
"id": 1,
"name": "Мои объекты",
"isDefault": true,
"isFavorite": false
}
}
GET /Users/{id}/districts
Пример запроса:
GET /users/123/districts
Пример успешного ответа:
{
"1": {
"id": 1,
"name": "Центральный район",
"parentID": null
},
"2": {
"id": 2,
"name": "Северный район",
"parentID": 1
}
}
GET /Users/{id}/notifications
Пример запроса:
GET /users/123/notifications
Пример успешного ответа:
{
"email": "user@example.com",
"mobilePhone": "+79991234567",
"providers": [
{
"id": 1,
"code": "EMAIL",
"name": "Email",
"isOn": true,
"isAvailableForUser": true
}
]
}
GET /Users/{id}/profile
Пример запроса:
GET /users/123/profile
Пример успешного ответа:
{
"userID": 123,
"firstName": "Иван",
"middleName": "Петрович",
"lastName": "Иванов",
"email": "ivan.ivanov@example.com",
"mobilePhone": "+79991234567",
"workPhone": "+74951234567",
"isEmailVerified": true,
"isMobilePhoneVerified": true,
"isTechnician": true,
"isTeam": false,
"isCustomer": false,
"avatarUrl": "https://storage.example.com/avatars/user123.jpg",
"isDelegationOn": false,
"averageRating": 4.5,
"sex": {
"id": 1,
"name": "Мужской"
},
"employments": [
{
"company": "ООО Пример",
"position": "Инженер",
"scheduleRuleID": 1,
"dateFrom": "2024-01-01T00:00:00Z",
"dateTill": "2024-12-31T23:59:59Z"
}
],
"geoTrackingMode": {
"id": 1,
"name": "Автоматический"
}
}
Пример ошибки:
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "USER_NOT_FOUND",
"message": "Пользователь не найден"
}
GET /Users/{id}/roles
Пример запроса:
GET /users/123/roles
Пример успешного ответа:
{
"123": [
{
"id": 1,
"name": "Администратор"
},
{
"id": 2,
"name": "Менеджер"
}
]
}
GET /Users/{id}/taskListQueries
Пример запроса:
GET /users/123/taskListQueries
Пример успешного ответа:
{
"1": {
"id": 1,
"name": "Мои заявки",
"isDefault": true,
"isFavorite": false
}
}
GET /Users/{id}/warehouses
Пример запроса:
GET /users/123/warehouses
Пример успешного ответа:
[
{
"id": 1,
"name": "Склад №1",
"erpID": "WH001"
},
{
"id": 2,
"name": "Склад №2",
"erpID": "WH002"
}
]
DELETE /Users/{userID}
Пример запроса:
DELETE /users/123
Пример успешного ответа:
HTTP 202 Accepted
Пример ошибки:
[
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "USER_HAS_ACTIVE_TASKS",
"message": "Невозможно удалить пользователя, у которого есть активные заявки"
}
]
GET /Users/{userID}/assetAssignments
Пример запроса:
GET /users/123/assetAssignments?validOn=2024-01-15T00:00:00Z
Пример успешного ответа:
[
{
"asset": {
"id": 1,
"name": "Объект №1"
},
"validityPeriod": {
"dateFrom": "2024-01-01T00:00:00Z",
"dateTill": "2024-12-31T23:59:59Z"
},
"notes": "Основной объект"
}
]
GET /Users/{userID}/attributes
Пример запроса:
GET /users/123/attributes?attributeID=1
Пример успешного ответа:
[
{
"tenantID": 1,
"userID": 123,
"attributeID": 1,
"attributeName": "Специализация",
"value": "Электрика",
"domain": {
"id": 1,
"name": "Технические навыки",
"code": "TECH_SKILLS"
}
}
]
POST /Users/{userID}/attributes
Пример запроса:
POST /users/123/attributes
[
{
"attributeID": 1,
"value": "Электрика"
}
]
Пример успешного ответа:
HTTP 201 Created
PUT /Users/{userID}/attributes
Пример запроса:
PUT /users/123/attributes
[
{
"attributeID": 1,
"value": "Сантехника"
}
]
Пример успешного ответа:
HTTP 202 Accepted
DELETE /Users/{userID}/attributes
Пример запроса:
DELETE /users/123/attributes
[1, 2, 3]
Пример успешного ответа:
HTTP 202 Accepted
GET /Users/{userID}/defaultPages
Пример запроса:
GET /users/123/defaultPages
Пример успешного ответа:
{
"tenantID": 1,
"userID": 123,
"webPage": "dashboard",
"mobilePage": "tasks",
"webPageNameRu": "Дашборд",
"mobilePageNameRu": "Задачи"
}
POST /Users/{userID}/geolocation
Пример запроса:
POST /users/123/geolocation?coordinateAccuracyID=1
Пример успешного ответа:
HTTP 201 Created
PUT /Users/{userID}/geolocation
Пример запроса:
PUT /users/123/geolocation?coordinateAccuracyID=2
Пример успешного ответа:
HTTP 202 Accepted
PUT /Users/{userID}/resendinvitation
Пример запроса:
PUT /users/123/resendinvitation
Пример успешного ответа:
HTTP 202 Accepted
Пример ошибки:
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "USER_NOT_FOUND",
"message": "Пользователь не найден"
}
PUT /Users/{userID}/restore
Пример запроса:
PUT /users/123/restore
Пример успешного ответа:
HTTP 202 Accepted
Пример ошибки:
[
{
"traceIdentifier": "0HMV3B6Q3K2Q1:00000001",
"code": "USER_ALREADY_RESTORED",
"message": "Пользователь с ID 123 уже восстановлен"
}
]
GET /Users/{userID}/skills
Пример запроса:
GET /users/123/skills
Пример успешного ответа:
{
"1": {
"skillID": 1,
"dateFrom": "2024-01-01T00:00:00Z",
"dateTill": "2024-12-31T23:59:59Z"
},
"2": {
"skillID": 2,
"dateFrom": "2024-01-01T00:00:00Z",
"dateTill": null
}
}
GET /Users/{userID}/tags
Пример запроса:
GET /users/123/tags
Пример успешного ответа:
[
"Срочно",
"VIP",
"Важный клиент"
]