Протокол¶
Оглавление¶
-
keyapis/notification/v1/keyapis_notification_push_token_v1.proto
- DeletePushTokenResponse
- DeletePushTokenResponse.Error
- DeletePushTokenUserAppIdRequest
- DeletePushTokenUserAppIdResponse
- DeletePushTokenUserAppIdResponse.Error
- DeletePushTokenUserIdRequest
- DeletePushTokenUserIdResponse
- DeletePushTokenUserIdResponse.Error
- GetPushTokenCountRequest
- GetPushTokenCountResponse
- GetPushTokenCountResponse.Error
- GetPushTokenListRequest
- GetPushTokenListResponse
- GetPushTokenListResponse.Error
- PostPushTokenRequest
- PostPushTokenResponse
- PostPushTokenResponse.Error
- PushToken
- PushToken.SavingError
- PushToken.SavingError.Conflict
- PushToken.SavingError.UserAppIdExists
- PushToken.ValidationError
- PushToken.ValidationError.UserAppIdInvalid
- PushTokenFilter
- PushTokenFilter.ValidationError
- PushTokenFilter.ValidationError.UserAppIdsInvalid
- PushTokenPaging
- PushTokenPaging.ValidationError
- PushTokenPaging.ValidationError.LimitInvalid
- PushTokenPaging.ValidationError.OffsetInvalid
- PushTokenPaging.DirectionType
- PushTokenPaging.OrderByType
Схема классов¶
keyapis/notification/v1/keyapis_notification_push_token_v1.proto¶
Сервис реализует функционал управления пуш-токенами устройств. Используется как отдельное хранилихе пуш токенов, на первом этапе будет хранить только PWA токены
PushTokenService¶
Сервис пуш-токенов устройств
| Название метода | Описание | Тип запроса | Тип ответа |
|---|---|---|---|
| PostPushToken | Метод сохранения пуш-токенов. Поддерживает создание и обновление. Метод доступен для: admin, master, employee, owner, service, application(notification:edit). Для ролей master, employee, owner можно сохранять только собственные пуш-токены. Для ролей admin, service доступны все пуш-токены | keyapis.notification.v1.PostPushTokenRequest | keyapis.notification.v1.PostPushTokenResponse |
| GetPushTokenList | Метод получения пуш-токенов. Метод доступен для: admin, master, employee, owner, service, application(notification:read или notification:edit). Для ролей master, employee, owner можно просматривать только собственные пуш-токены. Для ролей admin, service доступны все пуш-токены | keyapis.notification.v1.GetPushTokenListRequest | keyapis.notification.v1.GetPushTokenListResponse stream |
| GetPushTokenCount | Метод получения количества пуш-токенов. Метод доступен для: admin, master, employee, owner, service, application(notification:read или notification:edit). Для ролей master, employee, owner можно просматривать только собственные пуш-токены. Для ролей admin, service доступны все пуш-токены | keyapis.notification.v1.GetPushTokenCountRequest | keyapis.notification.v1.GetPushTokenCountResponse |
| DeletePushToken | Метод удаления пуш-токена. Метод доступен для: admin, master, employee, owner, service, application(notification:edit). Для ролей master, employee, owner можно удалять только собственные пуш-токены. Для ролей admin, service можно удалять все пуш-токены | keyapis.notification.v1.DeletePushTokenRequest | keyapis.notification.v1.DeletePushTokenResponse |
| DeletePushTokenUserAppId | Метод удаления пуш-токена по идентификатору устройства пользователя. Метод доступен для: admin, master, employee, owner, service, application(notification:edit). Для ролей master, employee, owner можно удалять только собственные пуш-токены. Для ролей admin, service можно удалять все пуш-токены | keyapis.notification.v1.DeletePushTokenUserAppIdRequest | keyapis.notification.v1.DeletePushTokenUserAppIdResponse |
| DeletePushTokenUserId | Метод удаления пуш-токенов по идентификатору пользователя. Метод доступен для: admin, master, employee, owner, service, application(notification:edit). Для ролей master, employee, owner можно удалять только собственные пуш-токены. Для ролей admin, service можно удалять все пуш-токены | keyapis.notification.v1.DeletePushTokenUserIdRequest | keyapis.notification.v1.DeletePushTokenUserIdResponse |
DeletePushTokenRequest¶
Запрос удаления пуш-токена
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| id | Идентификатор. # Диапазон: 0..2147483647 | int32 | REQUIRED |
DeletePushTokenResponse¶
Ответ на запрос удаления пуш-токена
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| error | Ошибка | optional keyapis.notification.v1.DeletePushTokenResponse.Error |
DeletePushTokenResponse.Error¶
Ошибка удаления пуш-токена
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| validation | Ошибка валидации | optional keyapis.notification.v1.ValidationError |
DeletePushTokenUserAppIdRequest¶
Запрос удаления пуш-токена по идентификатору устройства пользователя
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| user_app_id | Идентификатор устройства пользователя. # Тип: Guid | string | REQUIRED |
DeletePushTokenUserAppIdResponse¶
Ответ на запрос удаления пуш-токена по идентификатору устройства пользователя
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| error | Ошибка | optional keyapis.notification.v1.DeletePushTokenUserAppIdResponse.Error |
DeletePushTokenUserAppIdResponse.Error¶
Ошибка удаления пуш-токена
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| validation | Ошибка валидации | optional keyapis.notification.v1.ValidationError |
DeletePushTokenUserIdRequest¶
Запрос удаления пуш-токенов по идентификатору пользователя
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| user_id | Идентификатор пользователя. # Диапазон: 1..2147483647 | int32 | REQUIRED |
DeletePushTokenUserIdResponse¶
Ответ на запрос удаления пуш-токенов по идентификатору пользователя
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| error | Ошибка | optional keyapis.notification.v1.DeletePushTokenUserIdResponse.Error |
DeletePushTokenUserIdResponse.Error¶
Ошибка удаления пуш-токенов
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| validation | Ошибка валидации | optional keyapis.notification.v1.ValidationError |
GetPushTokenCountRequest¶
Запрос получения количества пуш-токенов
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| filter | Фильтр | keyapis.notification.v1.PushTokenFilter |
GetPushTokenCountResponse¶
Ответ на запрос получения количества пуш-токенов
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| data | Всего пуш-токенов | optional int32 | |
| error | Ошибка | optional keyapis.notification.v1.GetPushTokenCountResponse.Error |
GetPushTokenCountResponse.Error¶
Ошибка запроса получения количества пуш-токенов
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| push_token_filter_validation | Deprecated. Ошибка фильтрации | optional keyapis.notification.v1.PushTokenFilter.ValidationError | |
| validation | Ошибка валидации | optional keyapis.notification.v1.ValidationError |
GetPushTokenListRequest¶
Запрос на получение пуш-токенов пользователя
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| filter | Фильтр | keyapis.notification.v1.PushTokenFilter | |
| paging | Стандартный постраничный вывод | optional keyapis.notification.v1.PushTokenPaging |
GetPushTokenListResponse¶
Ответ на получение списка пуш-токенов
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| data | Пуш-токен | optional keyapis.notification.v1.PushToken | |
| error | Ошибка | optional keyapis.notification.v1.GetPushTokenListResponse.Error |
GetPushTokenListResponse.Error¶
Ошибка запроса получения списка пуш-токенов
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| push_token_filter_validation | Deprecated. Ошибка фильтрации | optional keyapis.notification.v1.PushTokenFilter.ValidationError | |
| push_token_paging_validation | Deprecated. Ошибка пагинации по страницам | optional keyapis.notification.v1.PushTokenPaging.ValidationError | |
| validation | Ошибка валидации | optional keyapis.notification.v1.ValidationError |
PostPushTokenRequest¶
Запрос на создание/изменение пуш-токена
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| data | Пуш-токен | keyapis.notification.v1.PushToken | REQUIRED |
PostPushTokenResponse¶
Ответ на запрос на создание/изменение пуш-токена
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| data | Пуш-токен | optional keyapis.notification.v1.PushToken | |
| error | Ошибка | optional keyapis.notification.v1.PostPushTokenResponse.Error |
PostPushTokenResponse.Error¶
Ошибка запроса сохранения пуш-токена
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| push_token_validation | Deprecated. Ошибка валидации пуш-токена | optional keyapis.notification.v1.PushToken.ValidationError | |
| push_token_saving | Ошибка сохранения пуш-токена | optional keyapis.notification.v1.PushToken.SavingError | |
| validation | Ошибка валидации пуш-токена | optional keyapis.notification.v1.ValidationError |
PushToken¶
Пуш-токен.
Описание модели¶
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| id | Идентификатор. # Диапазон: 0..2147483647 | int32 | |
| type | Тип | keyapis.notification.v1.PushToken.Type | REQUIRED |
| token | Токен. # Диапазон: 16..256 | string | REQUIRED |
| user_app_id | Идентификатор устройства пользователя. # Тип: Guid | string | REQUIRED |
| user_id | Идентификатор пользователя. # Диапазон: 1..2147483647 | google.protobuf.Int32Value | OUTPUT_ONLY |
| created_at | Дата и время создания. # Тип: DateTime | google.protobuf.Timestamp | OUTPUT_ONLY |
| changed_at | Дата последнего изменения. Заполняется и обновляется сервером. Заполняется при создании и изменении. Является версией объекта. # Тип: DateTime | google.protobuf.Timestamp | OUTPUT_ONLY |
| app_version | Версия приложения. # Диапазон: 3..256 | string | REQUIRED |
PushToken.SavingError¶
Ошибка сохранения пуш-токена. Эти проверки выполняются при работе с базой данных и сторонними сервисами
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| user_app_id_exists | Идентификатор устройства пользователя уже используется | optional keyapis.notification.v1.PushToken.SavingError.UserAppIdExists | |
| conflict | Конфликт версий | optional keyapis.notification.v1.PushToken.SavingError.Conflict |
PushToken.SavingError.Conflict¶
Конфликт версий. Причины: - В базе хранится другая версия строки, значения changed_at отличаются
PushToken.SavingError.UserAppIdExists¶
Причины: - Переданный индентификатор устройства пользователя уже существует с другим токеном
PushToken.ValidationError¶
Ошибка валидации пуш-токена. Эти проверки выполняются до обращения в базу данных
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| user_app_id | Передан некоректный идентификатор устройства пользователя | optional keyapis.notification.v1.PushToken.ValidationError.UserAppIdInvalid |
PushToken.ValidationError.UserAppIdInvalid¶
Причины: - Cодержит значение не Guid
PushTokenFilter¶
Фильтр по пуш-токенам
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| types | По типам пуш-токенов | repeated keyapis.notification.v1.PushToken.Type | |
| user_app_ids | По идентификаторам устройств пользователя. # Тип: Guid | repeated string | |
| user_ids | По идентификаторам пользователя | repeated int32 | |
| begin_created_at | От даты создания включительно (>=) | google.protobuf.Timestamp | |
| end_created_at | До даты создания (<) | google.protobuf.Timestamp | |
| begin_changed_at | От даты изменения включительно (>=) | google.protobuf.Timestamp | |
| end_changed_at | До даты изменения (<) | google.protobuf.Timestamp |
PushTokenFilter.ValidationError¶
Ошибки валидации фильтра по фильтру пуш-токенов. Эти проверки выполняются до обращения в базу данных
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| user_app_ids | Идентификаторы устройств пользователя переданы некоректно | optional keyapis.notification.v1.PushTokenFilter.ValidationError.UserAppIdsInvalid |
PushTokenFilter.ValidationError.UserAppIdsInvalid¶
Причины: - Cодержит значение не Guid
PushTokenPaging¶
Постраничный вывод
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| order_by_type | Тип значения сортировки. Если значение не передано, то будет взято значение по умолчанию. # По умолчанию: ID | keyapis.notification.v1.PushTokenPaging.OrderByType | |
| direction_type | Тип направления сортировки. # По умолчанию: DESC | keyapis.notification.v1.PushTokenPaging.DirectionType | |
| limit | Количество записей на страницу. Если значение 0 (не передано), то будет взято значение по умолчанию. # Диапазон: 0..100. # По умолчанию: 20 | int32 | |
| offset | Сдвиг. # Диапазон: 0..2147483647 | int32 |
PushTokenPaging.ValidationError¶
Ошибка валидации постраничной пагинации по пуш-токенам. Эти проверки выполняются до обращения в базу данных
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| limit | Количество передано некорректно | optional keyapis.notification.v1.PushTokenPaging.ValidationError.LimitInvalid | |
| offset | Сдвиг передан некорректно | optional keyapis.notification.v1.PushTokenPaging.ValidationError.OffsetInvalid |
PushTokenPaging.ValidationError.LimitInvalid¶
Причины: - Значение количества < 0 или > 100
PushTokenPaging.ValidationError.OffsetInvalid¶
Причины: - Значение сдвига < 0
ValidationError¶
Ошибки валидации. Эти проверки выполняются до обращения в базу данных
| Поле | Описание | Тип | Признак |
|---|---|---|---|
| path | Путь к полю в формате наименования прото | string | REQUIRED |
| message | Валидационное сообщение | string | REQUIRED |
PushToken.Type¶
Справочников типов пуш-токенов.
Тип: byte¶
| Номер | Тип | Название |
|---|---|---|
| 0 | TYPE_UNKNOWN | Не указан |
| 1 | MOBILE_FCM | Для Mobile Firebase Cloud Messaging |
| 2 | MOBILE_HMS | Для Mobile Huawei Messaging System |
| 3 | MOBILE_APNS_TEXT | Для Mobile Apple PushToken System для текста |
| 4 | MOBILE_APNS_CALL | Для Mobile Apple PushToken System для звонков |
| 5 | PWA_FCM | Для PWA Firebase Cloud Messaging |
| 6 | PWA_APNS | Для PWA Apple PushToken System |
| 7 | MOBILE_RUSTORE | Для Mobile RuStore |
PushTokenPaging.DirectionType¶
Справочник типов направлений сортировки.
Тип: byte¶
| Номер | Тип | Название |
|---|---|---|
| 0 | DIRECTION_TYPE_UNKNOWN | Значение не указано |
| 1 | DESC | От большего к меньшему |
| 2 | ASC | От меньшего к большему |
PushTokenPaging.OrderByType¶
Справочник типов значений сортировки.
Тип: byte¶
| Номер | Тип | Название |
|---|---|---|
| 0 | ORDER_BY_TYPE_UNKNOWN | Значение не указано |
| 1 | ID | По идентификатору |
| 2 | CREATED_AT | По времени создания |
| 3 | CHANGED_AT | По времени изменения |
Скалярные типы значений¶
| .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 |