diff --git a/proto/common/common.proto b/proto/common/common.proto index 60a918a78edde0584408543f191e3a8fc4ffded3..a929133532359066ac5e57f91cf49988cd5812ef 100644 --- a/proto/common/common.proto +++ b/proto/common/common.proto @@ -6,44 +6,6 @@ package common; import "google/protobuf/struct.proto"; -message Error { - message BadRequest { - message FieldViolation { - string field = 1; - string description = 2; - } - repeated FieldViolation errors = 1; - } - - message Help { - message Link { - string description =1; - string url = 2; - } - repeated Link links = 1; - } - - message DebugInfo { - repeated string stack_trace = 1; - string detail = 2; - } - - message LocalizedMessage { - string locale = 1; - string message = 2; - } - - uint64 error_code = 1; // Код ошибки - string error_id = 2; // ID конкретного инцидента, ID уникальна для каждого случая. - string reason = 3; // ??? - string domain = 4; // Сервис,Пакет к которому относится ошибка - map<string,string> metadata = 9; // Мета-информация - BadRequest bad_request = 10; // Ошибка запроса - DebugInfo debug_info = 11; // Отладочная информация - Help help = 100; // Пользовательская информации и инструкции - repeated LocalizedMessage localized_messages = 200; // Перевод сообщения об ошибке -} - message Filter { string op = 1; string field = 2; diff --git a/proto/common/error.proto b/proto/common/error.proto new file mode 100644 index 0000000000000000000000000000000000000000..5dce268cff280c9f1ab0b8a1a8f71d7f14ba85fd --- /dev/null +++ b/proto/common/error.proto @@ -0,0 +1,49 @@ +syntax = "proto3"; + +option go_package = "git.perx.ru/perxis/perxis-go/proto/common;common"; + +package common; + +import "google/protobuf/struct.proto"; + +message Error { + message BadRequest { + message FieldViolation { + string field = 1; + string description = 2; + } + repeated FieldViolation errors = 1; + } + + message Help { + message Link { + string description =1; + string url = 2; + } + repeated Link links = 1; + } + + message DebugInfo { + repeated string stack_trace = 1; + string detail = 2; + } + + message LocalizedMessage { + string locale = 1; + string message = 2; + } + + uint64 error_code = 1; // Код ошибки + string error_id = 2; // ID конкретного инцидента, ID уникальна для каждого случая. + string reason = 3; // ??? + string domain = 4; // Сервис, пакет к которому относится ошибка + string message = 5; // Текст ошибки + string details = 6; // Дополнительные детали об ошибке + map<string,string> metadata = 9; // Мета-информация + BadRequest bad_request = 10; // Ошибка запроса + DebugInfo debug_info = 11; // Отладочная информация + Help help = 100; // Пользовательская информации и инструкции + repeated LocalizedMessage localized_messages = 200; // Перевод сообщения об ошибке + + repeated Error errors = 500; // Вложенные ошибки +} diff --git a/proto/common/operation.proto b/proto/common/operation.proto index d77171ae99b45592065af7b9b2d6e016190ce65a..888ff4b9d29d55a155219d2269a52baa9c47c0db 100644 --- a/proto/common/operation.proto +++ b/proto/common/operation.proto @@ -4,6 +4,7 @@ package common; import "google/protobuf/timestamp.proto"; import "google/protobuf/any.proto"; +import "common/error.proto"; option go_package = "git.perx.ru/perxis/perxis-go/proto/common;common"; @@ -37,6 +38,6 @@ message Operation { google.protobuf.Any response = 9; // Результат выполнения операции в случае ошибки - string error = 10; + Error error = 10; } } diff --git a/proto/items/items.proto b/proto/items/items.proto index 9ab01fe0c9b3ea6c132a879709cfb2d483770c79..444cdb0998db7fc62197e09d4a41e160e7b54860 100644 --- a/proto/items/items.proto +++ b/proto/items/items.proto @@ -10,6 +10,7 @@ syntax = "proto3"; import "google/protobuf/empty.proto"; import "common/common.proto"; +import "common/error.proto"; import "google/protobuf/timestamp.proto"; import "google/protobuf/struct.proto";