Перейти к содержанию

Протокол

Оглавление

Схема классов

/svg/protos/key/keyapis/user/v1/keyapis_user_user_v1.proto.svg

keyapis/user/v1/keyapis_user_user_v1.proto

Сервис реализует функционал управления пользователями

UserService

Сервис пользователей

Название метода Описание Тип запроса Тип ответа
GetUser Метод получения пользователей. Метод доступен для: admin, service, manager, bti, ltp_first, owner, empolyee. Роли owner или employee могут запрашивать только пользователей, принадлежащих их компании keyapis.user.v1.GetUserRequest keyapis.user.v1.GetUserResponse
GetUserList Метод получения списка пользователей. Метод доступен для: admin, service, manager, bti, ltp_first, owner, empolyee. Если метод вызван ролями owner или employee в фильтре поле company_ids принудительно замещается их company_id keyapis.user.v1.GetUserListRequest keyapis.user.v1.GetUserListResponse stream
GetUserCount Метод получения количества пользователей. Метод доступен для: admin, service, manager, bti, ltp_first, owner, empolyee. Если метод вызван ролями owner или employee в фильтре поле company_ids принудительно замещается их company_id keyapis.user.v1.GetUserCountRequest keyapis.user.v1.GetUserCountResponse
DeleteUser Метод удаления пользователей. Метод доступен для: admin, service keyapis.user.v1.DeleteUserRequest keyapis.user.v1.DeleteUserResponse
DeleteUserSessions Метод удаления всех пользовательских сессий. Метод доступен для: admin, service keyapis.user.v1.DeleteUserSessionsRequest keyapis.user.v1.DeleteUserSessionsResponse
GetUserCode Метод получения идентификационного кода пользователя. Метод доступен для: admin, service, ltp_first keyapis.user.v1.GetUserCodeRequest keyapis.user.v1.GetUserCodeResponse
PostUserCodeCreate Метод создания идентификационного кода пользователя. После создания кода отправляется событие SendingSmsTask. Метод доступен для: admin, service, ltp_first keyapis.user.v1.PostUserCodeCreateRequest keyapis.user.v1.PostUserCodeCreateResponse
PostUser Метод создания пользователя. Метод доступен для: admin, service. Доступно создание пользователей с типом: ADMIN, MRF, BTI, LTP_FIRST, SERVICE, DEVICE_ADMIN, MANAGER keyapis.user.v1.PostUserRequest keyapis.user.v1.PostUserResponse

DeleteUserRequest

Запрос удаления пользователя

Поле Описание Тип Признак
id Идентификатор int32 REQUIRED

DeleteUserResponse

Ответ на запрос удаления пользователя

Поле Описание Тип Признак
error Ошибка optional keyapis.user.v1.DeleteUserResponse.Error

DeleteUserResponse.Error

Ошибка запроса удаления пользователя

Поле Описание Тип Признак
validation Ошибка валидации optional keyapis.user.v1.ValidationError
saving Ошибка сохранения optional keyapis.user.v1.User.SavingError

DeleteUserSessionsRequest

Запрос удаления всех пользовательских сессий

Поле Описание Тип Признак
id Идентификатор пользователя. # Диапазон: 1..2147483647 int32 REQUIRED

DeleteUserSessionsResponse

Ответ на запрос удаления всех пользовательских сессий

Поле Описание Тип Признак
error Ошибка optional keyapis.user.v1.DeleteUserSessionsResponse.Error

DeleteUserSessionsResponse.Error

Ошибка запроса

Поле Описание Тип Признак
validation Ошибка валидации optional keyapis.user.v1.ValidationError

GetUserCodeRequest

Запрос получения идентификационного кода пользователя

Поле Описание Тип Признак
id Идентификатор. # Диапазон: 0..2147483647 int32 REQUIRED

GetUserCodeResponse

Ответ на запрос получения идентификационного кода пользователя

Поле Описание Тип Признак
data Идентификационный код optional keyapis.user.v1.UserCode
error Ошибка optional keyapis.user.v1.GetUserCodeResponse.Error

GetUserCodeResponse.Error

Ошибка запроса получения идентификационного кода пользователя

Поле Описание Тип Признак
validation Ошибка валидации optional keyapis.user.v1.ValidationError
user_code_not_found У пользователя отсутствует идентификационный код optional keyapis.user.v1.GetUserCodeResponse.Error.UserCodeNotFound

GetUserCodeResponse.Error.UserCodeNotFound

У пользователя отсутствует идентификационный код

GetUserCountRequest

Запрос получения количества пользователей

Поле Описание Тип Признак
filter Фильтр keyapis.user.v1.UserFilter

GetUserCountResponse

Ответ на запрос получения количества пользователей

Поле Описание Тип Признак
data Всего пользователей optional int32
error Ошибка optional keyapis.user.v1.GetUserCountResponse.Error

GetUserCountResponse.Error

Ошибка запроса получения количества пользователей

Поле Описание Тип Признак
validation Ошибка валидации optional keyapis.user.v1.ValidationError

GetUserListRequest

Запрос на получение списка пользователей

Поле Описание Тип Признак
filter Фильтр keyapis.user.v1.UserFilter
paging Стандартный постраничный вывод optional keyapis.user.v1.UserPaging

GetUserListResponse

Ответ на получение списка пользователей

Поле Описание Тип Признак
data Пользователь optional keyapis.user.v1.User
error Ошибка optional keyapis.user.v1.GetUserListResponse.Error

GetUserListResponse.Error

Ошибка запроса получения списка пользователей

Поле Описание Тип Признак
validation Ошибка валидации optional keyapis.user.v1.ValidationError

GetUserRequest

Запрос получения пользователя

Поле Описание Тип Признак
id Идентификатор int32 REQUIRED

GetUserResponse

Ответ на запрос получения пользователя

Поле Описание Тип Признак
data Пользователь optional keyapis.user.v1.User
error Ошибка optional keyapis.user.v1.GetUserResponse.Error

GetUserResponse.Error

Ошибка запроса получения пользователя

Поле Описание Тип Признак
validation Ошибка валидации optional keyapis.user.v1.ValidationError

PostUserCodeCreateRequest

Запрос создания идентификационного кода пользователя

Поле Описание Тип Признак
user_code Идентификационный код пользователя keyapis.user.v1.UserCode REQUIRED

PostUserCodeCreateResponse

Ответ на запрос создания идентификационного кода пользователя

Поле Описание Тип Признак
data Идентификационный код пользователя optional keyapis.user.v1.UserCode
error Ошибка optional keyapis.user.v1.PostUserCodeCreateResponse.Error

PostUserCodeCreateResponse.Error

Ошибка запроса создания идентификационного кода пользователя

Поле Описание Тип Признак
validation Ошибка валидации optional keyapis.user.v1.ValidationError

PostUserRequest

Запрос на создание пользователя

Поле Описание Тип Признак
data Пользователь keyapis.user.v1.User REQUIRED

PostUserResponse

Ответ на запрос на создание пользователя

Поле Описание Тип Признак
data Пользователь optional keyapis.user.v1.User
error Ошибка optional keyapis.user.v1.PostUserResponse.Error

PostUserResponse.Error

Ошибка запроса сохранения пользователя

Поле Описание Тип Признак
validation Ошибка валидации optional keyapis.user.v1.ValidationError
saving Ошибка сохранения optional keyapis.user.v1.User.SavingError

User

Пользователь

Поле Описание Тип Признак
id Идентификатор. # Диапазон: 0..2147483647 int32
type Тип пользователя keyapis.user.v1.User.Type REQUIRED
status_type Статус пользователя keyapis.user.v1.User.StatusType OUTPUT_ONLY
login Логин. # Диапазон: 3..64 google.protobuf.StringValue
email Электронная почта. # Диапазон: 4..256 google.protobuf.StringValue
phone_number Номер телефона. # Диапазон: 5..14 google.protobuf.StringValue
company_id Идентификатор компании. # Диапазон: 1..2147483647 google.protobuf.Int32Value
mrf_id Идентификатор МРФ google.protobuf.Int32Value
rf_id Идентификатор РФ google.protobuf.Int32Value
created_at Дата создания. # Тип: DateTime google.protobuf.Timestamp OUTPUT_ONLY
changed_at Дата изменения. # Тип: DateTime google.protobuf.Timestamp
activated_at Дата активации. # Тип: DateTime google.protobuf.Timestamp OUTPUT_ONLY
blocked_at Дата активации. # Тип: DateTime google.protobuf.Timestamp OUTPUT_ONLY
creator_user_id Идентификатор создавшего пользователя. Берется из токена. # Диапазон: 1..2147483647 google.protobuf.Int32Value OUTPUT_ONLY
owner_user_id Идентификатор пользователя-владельца. # Диапазон: 1..2147483647 google.protobuf.Int32Value
invoice_email Электронная почта для чеков. # Диапазон: 4..256 google.protobuf.StringValue
vc_user_id Идентификатор пользователя в Видеонаблюдении. Вычисляется на стороне сервера при создании пользователя google.protobuf.Int32Value OUTPUT_ONLY
description Описание google.protobuf.StringValue
ustore_user_id Идентификатор пользователя в сервисе ustore. Вычисляется на стороне сервера при создании пользователя google.protobuf.Int32Value OUTPUT_ONLY
env_url Адрес окружения для внутренних пользователей google.protobuf.StringValue

User.SavingError

Ошибка сохранения. Эти проверки выполняются при работе с базой данных и сторонними сервисами

Поле Описание Тип Признак
conflict Конфликт версий optional keyapis.user.v1.User.SavingError.Conflict
user_type_forbidden Нельзя удалять пользователя с данным типом optional keyapis.user.v1.User.SavingError.UserTypeForbidden
user_status_forbidden Нельзя удалять пользователя в текущем статусе optional keyapis.user.v1.User.SavingError.UserStatusForbidden
mrf_id_is_required_for_user_type Идентификатор МРФ обязателен optional keyapis.user.v1.User.SavingError.MrfIdRequiredForUserType
creator_must_be_admin Создатель пользователя должен иметь роль Admin optional keyapis.user.v1.User.SavingError.CreatorMustBeAdmin
rf_id_does_not_match_mrf_id Идентификатор РФ не соответствует идентификатору МРФ optional keyapis.user.v1.User.SavingError.RfIdDoesNotMatchMrfId
email_is_already_taken Email уже занят optional keyapis.user.v1.User.SavingError.EmailIsAlreadyTaken
entity_not_found Связанная с пользователем сущность не найдена optional keyapis.user.v1.User.SavingError.EntityNotFound

User.SavingError.Conflict

Конфликт версий. Причины: - В базе хранится другая версия строки, значения changed_at отличаются

User.SavingError.CreatorMustBeAdmin

Создатель пользователя должен иметь роль Admin

User.SavingError.EmailIsAlreadyTaken

Email уже занят

User.SavingError.EntityNotFound

Связанная с пользователем сущность не найдена. Например: компания по company_id, пользователь по owner_user_id

Поле Описание Тип Признак
field Поле string

User.SavingError.MrfIdRequiredForUserType

Для данного типа пользователя идентификатор МРФ обязателен

User.SavingError.RfIdDoesNotMatchMrfId

Идентификатор РФ не соответствует идентификатору МРФ

User.SavingError.UserStatusForbidden

Нельзя удалять пользователя в текущем статусе. В каких статусах можно удалить пользователя: - demo

User.SavingError.UserTypeForbidden

Нельзя удалять пользователя с данным типом. Доступные типы: - Жилец (мастер)

UserCode

Идентификационный код пользователя

Поле Описание Тип Признак
code Идентификационный код. Если поле не заполнено, генерируется автоматически. # Диапазон: 10000..99999 int32
user_id Идентификатор пользователя. # Диапазон: 0..2147483647 int32 REQUIRED
created_at Дата создания. # Тип: DateTime google.protobuf.Timestamp OUTPUT_ONLY
creator_user_id Идентификатор создателя кода int32 OUTPUT_ONLY
creator_user_type Тип создателя кода keyapis.user.v1.User.Type OUTPUT_ONLY

UserFilter

Фильтр по пользователям

Поле Описание Тип Признак
company_ids По идентификаторам компаний repeated int32
user_types По типам repeated keyapis.user.v1.User.Type
user_status_types По статусам repeated keyapis.user.v1.User.StatusType
emails По электронной почте repeated string
phone_numbers По номеру телефона repeated string
logins По логину repeated string
text Поиск по тексту. Если значение не передано то поиск по нему не производится. # Диапазон: 3..64. # Поиск производится по полям: # - Описание google.protobuf.StringValue
contacts Поиск по контактным данным пользователя (электронная почта или номер телефона). Если значение не передано то поиск по нему не производится. # Диапазон: 3..64. # Поиск производится по полям: # - Электронная почта; # - Номер телефона google.protobuf.StringValue

UserPaging

Постраничный вывод

Поле Описание Тип Признак
order_by_type Тип значения сортировки. Если значение не передано, то будет взято значение по умолчанию. # По умолчанию: CHANGED_AT keyapis.user.v1.UserPaging.OrderByType
direction_type Тип направления сортировки. # По умолчанию: DESC keyapis.user.v1.UserPaging.DirectionType
limit Количество записей на страницу. Если значение 0 (не передано), то будет взято значение по умолчанию. # Диапазон: 0..100. # По умолчанию: 20 int32
offset Сдвиг. # Диапазон: 0..2147483647 int32

ValidationError

Ошибки валидации. Эти проверки выполняются до обращения в базу данных

Поле Описание Тип Признак
path Путь к полю в формате наименования прото string REQUIRED
message Валидационное сообщение string REQUIRED

User.StatusType

Справочник типов статусов пользователей.

Тип: byte

Номер Тип Название
0 STATUS_TYPE_UNKNOWN Значение не указано
1 NEW Не активный пользователь
2 DEMO Демо пользователь
3 ACTIVE Активный пользователь
4 BLOCKED Архивный пользователь

User.Type

Справочник типов пользователей.

Тип: byte

Номер Тип Название
0 TYPE_UNKNOWN Значение не указано
1 OWNER Владелец УК
2 EMPLOYEE Сотрудник УК
3 MASTER Мастер житель
4 SLAVE Подчиненный житель
5 ADMIN Администратор
6 SELLER Сотрудники ГАП
7 MRF МРФ
8 BACKOFFICE ГРЗУК
9 SERVICE Сервис
10 ROOT Супер админ
11 BTI Сотрудник БТИ
12 LTP_FIRST Сотрудник 1 ЛТП
13 EXTERNAL_SELLER Сотрудник ГАП
14 APPLICATION Приложение
15 MANAGER Администратор точек продаж
16 DEVICE_ADMIN Администратор устройств

UserPaging.DirectionType

Справочник типов направлений сортировки.

Тип: byte

Номер Тип Название
0 DIRECTION_TYPE_UNKNOWN Значение не указано
1 DESC От большего к меньшему
2 ASC От меньшего к большему

UserPaging.OrderByType

Справочник типов значений сортировки.

Тип: byte

Номер Тип Название
0 ORDER_BY_TYPE_UNKNOWN Значение не указано
1 ID По идентификатору
2 CREATED_AT По времени создания
3 CHANGED_AT По времени изменения
4 EMAIL По электронной почте
5 RANK По рангу для поиска по тексту. Применяется когда передано поле для поиска по тексту. В случае если текстовое поле не передано, применяется значение по умолчанию
6 DESCRIPTION По описанию (collate-agnostic ordering)

Скалярные типы значений

.proto Type Примечание Python Go Ruby C# C++ Java PHP
double float float64 Float double double double float
float float float32 Float float float float float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int int32 Bignum or Fixnum (as required) int int32 int integer
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int/long int64 Bignum long int64 long integer/string
uint32 Uses variable-length encoding. int/long uint32 Bignum or Fixnum (as required) uint uint32 int integer
uint64 Uses variable-length encoding. int/long uint64 Bignum or Fixnum (as required) ulong uint64 long integer/string
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int int32 Bignum or Fixnum (as required) int int32 int integer
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int/long int64 Bignum long int64 long integer/string
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. int uint32 Bignum or Fixnum (as required) uint uint32 int integer
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. int/long uint64 Bignum ulong uint64 long integer/string
sfixed32 Always four bytes. int int32 Bignum or Fixnum (as required) int int32 int integer
sfixed64 Always eight bytes. int/long int64 Bignum long int64 long integer/string
bool boolean bool TrueClass/FalseClass bool bool boolean boolean
string A string must always contain UTF-8 encoded or 7-bit ASCII text. str/unicode string String (UTF-8) string string String string
bytes May contain any arbitrary sequence of bytes. str []byte String (ASCII-8BIT) ByteString string ByteString string