Skip to content

Commit ee93968

Browse files
author
ivan-skryabin
committed
feat grpc: add builder for google.rpc.Status
Added a comprehensive builder for creating rich gRPC error statuses with structured details following Google's error model. The new builder enables creating standards-compliant rich error responses with minimal boilerplate 1\. Implemented \`ugrpc::RichStatus\` class to simplify construction of \`google::rpc::Status\` objects 2\. Added \`RichStatus::TryGetDetail\` utility for extracting error details from statuses commit_hash:0fb91f89fb99dad7271d520c2502f6c1db181838
1 parent 62d3df4 commit ee93968

File tree

6 files changed

+1342
-67
lines changed

6 files changed

+1342
-67
lines changed

.mapping.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2314,6 +2314,7 @@
23142314
"grpc/include/userver/ugrpc/proto_json.hpp":"taxi/uservices/userver/grpc/include/userver/ugrpc/proto_json.hpp",
23152315
"grpc/include/userver/ugrpc/protobuf_logging.hpp":"taxi/uservices/userver/grpc/include/userver/ugrpc/protobuf_logging.hpp",
23162316
"grpc/include/userver/ugrpc/protobuf_visit.hpp":"taxi/uservices/userver/grpc/include/userver/ugrpc/protobuf_visit.hpp",
2317+
"grpc/include/userver/ugrpc/rich_status.hpp":"taxi/uservices/userver/grpc/include/userver/ugrpc/rich_status.hpp",
23172318
"grpc/include/userver/ugrpc/server/call_context.hpp":"taxi/uservices/userver/grpc/include/userver/ugrpc/server/call_context.hpp",
23182319
"grpc/include/userver/ugrpc/server/component_list.hpp":"taxi/uservices/userver/grpc/include/userver/ugrpc/server/component_list.hpp",
23192320
"grpc/include/userver/ugrpc/server/exceptions.hpp":"taxi/uservices/userver/grpc/include/userver/ugrpc/server/exceptions.hpp",
@@ -2453,6 +2454,7 @@
24532454
"grpc/src/ugrpc/proto_json.cpp":"taxi/uservices/userver/grpc/src/ugrpc/proto_json.cpp",
24542455
"grpc/src/ugrpc/protobuf_logging.cpp":"taxi/uservices/userver/grpc/src/ugrpc/protobuf_logging.cpp",
24552456
"grpc/src/ugrpc/protobuf_visit.cpp":"taxi/uservices/userver/grpc/src/ugrpc/protobuf_visit.cpp",
2457+
"grpc/src/ugrpc/rich_status.cpp":"taxi/uservices/userver/grpc/src/ugrpc/rich_status.cpp",
24562458
"grpc/src/ugrpc/server/call_context.cpp":"taxi/uservices/userver/grpc/src/ugrpc/server/call_context.cpp",
24572459
"grpc/src/ugrpc/server/component_list.cpp":"taxi/uservices/userver/grpc/src/ugrpc/server/component_list.cpp",
24582460
"grpc/src/ugrpc/server/exceptions.cpp":"taxi/uservices/userver/grpc/src/ugrpc/server/exceptions.cpp",
@@ -2514,6 +2516,7 @@
25142516
"grpc/tests/datetime_utils_test.cpp":"taxi/uservices/userver/grpc/tests/datetime_utils_test.cpp",
25152517
"grpc/tests/deadline_metrics_test.cpp":"taxi/uservices/userver/grpc/tests/deadline_metrics_test.cpp",
25162518
"grpc/tests/deadline_test.cpp":"taxi/uservices/userver/grpc/tests/deadline_test.cpp",
2519+
"grpc/tests/detailed_error_test.cpp":"taxi/uservices/userver/grpc/tests/detailed_error_test.cpp",
25172520
"grpc/tests/dump_protobuf_test.cpp":"taxi/uservices/userver/grpc/tests/dump_protobuf_test.cpp",
25182521
"grpc/tests/error_test.cpp":"taxi/uservices/userver/grpc/tests/error_test.cpp",
25192522
"grpc/tests/generic_client_test.cpp":"taxi/uservices/userver/grpc/tests/generic_client_test.cpp",
@@ -2527,6 +2530,7 @@
25272530
"grpc/tests/protobuf_utils_test.cpp":"taxi/uservices/userver/grpc/tests/protobuf_utils_test.cpp",
25282531
"grpc/tests/protobuf_visit_test.cpp":"taxi/uservices/userver/grpc/tests/protobuf_visit_test.cpp",
25292532
"grpc/tests/retry_test.cpp":"taxi/uservices/userver/grpc/tests/retry_test.cpp",
2533+
"grpc/tests/rich_status_test.cpp":"taxi/uservices/userver/grpc/tests/rich_status_test.cpp",
25302534
"grpc/tests/secret_fields_test.cpp":"taxi/uservices/userver/grpc/tests/secret_fields_test.cpp",
25312535
"grpc/tests/serialization_test.cpp":"taxi/uservices/userver/grpc/tests/serialization_test.cpp",
25322536
"grpc/tests/server_middleware_hooks_streaming_test.cpp":"taxi/uservices/userver/grpc/tests/server_middleware_hooks_streaming_test.cpp",

0 commit comments

Comments
 (0)