module ProtoPharm::StubComponents::FailureResponse
Public Instance Methods
to_fail()
click to toggle source
# File lib/proto_pharm/stub_components/failure_response.rb, line 13 def to_fail to_fail_with end
to_fail_with(code = :invalid_argument, message = "unknown cause", **metadata)
click to toggle source
@param code [String, Symbol] A gRPC failure code, such as not_found or invalid_argument. Default: :invalid_argument @param message [String] A message to pass back with the exception @param metadata [Hash] A hash of metadata to be passed back with the exception. See {ProtoPharm::MetadataSerializers::Base.serialize}.
# File lib/proto_pharm/stub_components/failure_response.rb, line 9 def to_fail_with(code = :invalid_argument, message = "unknown cause", **metadata) to_raise(exception_class(code).new(message, metadata_serializer.serialize(code: code, message: message, **metadata))) end
Private Instance Methods
exception_class(code)
click to toggle source
# File lib/proto_pharm/stub_components/failure_response.rb, line 23 def exception_class(code) class_name = code.to_s.camelize (GRPC.const_get(class_name) if GRPC.const_defined?(class_name)).tap do |klass| raise ArgumentError, "'#{code}' is not a valid gRPC failure code" unless klass.present? && klass < GRPC::BadStatus end end
metadata_serializer()
click to toggle source
# File lib/proto_pharm/stub_components/failure_response.rb, line 19 def metadata_serializer Configuration.config.metadata_serializer end