20 lines
508 B
Ruby
20 lines
508 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
require 'google/rpc/status_pb'
|
||
|
require 'google/protobuf/well_known_types'
|
||
|
|
||
|
module DetailedErrorHelpers
|
||
|
def new_detailed_error(error_code, error_message, details)
|
||
|
status_error = Google::Rpc::Status.new(
|
||
|
code: error_code,
|
||
|
message: error_message,
|
||
|
details: [Google::Protobuf::Any.pack(details)]
|
||
|
)
|
||
|
|
||
|
GRPC::BadStatus.new(
|
||
|
error_code,
|
||
|
error_message,
|
||
|
{ "grpc-status-details-bin" => Google::Rpc::Status.encode(status_error) })
|
||
|
end
|
||
|
end
|