Skip to content
Snippets Groups Projects
Commit e4be4f07 authored by Pavel Antonov's avatar Pavel Antonov :asterisk:
Browse files

feat(core): Обновление Items API Proto для поддержки локализации и переводов

Close #PRXS-2647
parent f8ca94aa
No related branches found
No related tags found
1 merge request!42Обновление Items API Proto для поддержки локализации и переводов
...@@ -65,15 +65,27 @@ message Item { ...@@ -65,15 +65,27 @@ message Item {
string updated_by = 9; // id пользователя обновившего текущую ревизию string updated_by = 9; // id пользователя обновившего текущую ревизию
google.protobuf.Timestamp updated_at = 10; // дата обновления текущей ревизии google.protobuf.Timestamp updated_at = 10; // дата обновления текущей ревизии
google.protobuf.Struct data = 11; google.protobuf.Struct data = 11;
map<string, google.protobuf.Struct> translations = 12;
string revision_id = 13; string revision_id = 13;
string revision_description = 14; string revision_description = 14;
string locale = 18;
bool deleted = 19; bool deleted = 19;
bool hidden = 20; bool hidden = 20;
bool template = 21; bool template = 21;
Permissions permissions = 22; Permissions permissions = 22;
double search_score = 23; // релеватность элемента при полнотекстовом поиске double search_score = 23; // релеватность элемента при полнотекстовом поиске
// string locale = 18; // DEPRECATED: используется locale_id
// При создании или обновлении идентификатор локали в котором создается запись, опционально.
// Если указан, то создается перевод для указанного языка, поле translations игнорируется
string locale_id = 100; // идентификатор локали полученной записи
// Позволяет одновременно установить/получить несколько переводов и производить манипуляции с переводами
// Ключами является идентификатор локали, значениями - данные переводы
map<string, google.protobuf.Struct> translations = 12;
// список идентификаторов локалей для которых есть переводы
// соотвествует ключам в translations
repeated string translations_ids = 101;
} }
/** /**
...@@ -131,6 +143,8 @@ message FindOptions { ...@@ -131,6 +143,8 @@ message FindOptions {
bool regular = 4; bool regular = 4;
bool hidden = 5; bool hidden = 5;
bool templates = 6; bool templates = 6;
string locale_id = 7; // Язык перевода который будет использоваться. Если не указан, то возвращаются данные для языка по умолчанию
repeated string translations_ids = 8; // Список идентификаторов переводов/локалей, которых должны быть включены в результат
} }
message UpdateOptions { message UpdateOptions {
...@@ -138,7 +152,8 @@ message UpdateOptions { ...@@ -138,7 +152,8 @@ message UpdateOptions {
} }
message GetPublishedOptions { message GetPublishedOptions {
string locale_id = 1; string locale_id = 7; // Язык перевода который будет использоваться. Если не указан, то возвращаются данные для языка по умолчанию
repeated string translations_ids = 8; // Список идентификаторов переводов/локалей, которых должны быть включены в результат
} }
message DeleteOptions { message DeleteOptions {
...@@ -160,10 +175,12 @@ message UnpublishOptions { ...@@ -160,10 +175,12 @@ message UnpublishOptions {
message FindPublishedOptions { message FindPublishedOptions {
common.FindOptions options = 2; common.FindOptions options = 2;
string locale_id = 3; // string locale_id = 3; // язык для поиска переводов. Если не указан, то возвращаются данные для языка по умолчанию
bool regular = 4; bool regular = 4;
bool hidden = 5; bool hidden = 5;
bool templates = 6; bool templates = 6;
string locale_id = 7; // Язык перевода который будет использоваться. Если не указан, то возвращаются данные для языка по умолчанию
repeated string translations_ids = 8; // Список идентификаторов переводов/локалей, которых должны быть включены в результат
} }
message FindArchivedOptions { message FindArchivedOptions {
...@@ -191,6 +208,7 @@ message AggregateOptions { ...@@ -191,6 +208,7 @@ message AggregateOptions {
message AggregatePublishedOptions { message AggregatePublishedOptions {
map<string, string> fields = 1; map<string, string> fields = 1;
// TODO: Каким образом будет организована работа с переводами и требуется ли она?
} }
message CreateRequest { message CreateRequest {
...@@ -210,12 +228,19 @@ message IntrospectResponse { ...@@ -210,12 +228,19 @@ message IntrospectResponse {
repeated common.Error.BadRequest.FieldViolation validation_errors = 3; repeated common.Error.BadRequest.FieldViolation validation_errors = 3;
} }
message GetOptions {
string locale_id = 7; // Язык перевода который будет использоваться. Если не указан, то возвращаются данные для языка по умолчанию
repeated string translations_ids = 8; // Список идентификаторов переводов/локалей, которых должны быть включены в результат
}
message GetRequest { message GetRequest {
string space_id = 1; string space_id = 1;
string env_id = 2; string env_id = 2;
string collection_id = 3; string collection_id = 3;
string item_id = 4; string item_id = 4;
GetOptions options = 5;
} }
message GetResponse { message GetResponse {
Item item = 1; Item item = 1;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment