Class: Safrano::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/stack-service-base/open_telemetry.rb

Instance Method Summary collapse

Instance Method Details

#processObject



163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
# File 'lib/stack-service-base/open_telemetry.rb', line 163

def process
  begin
    @response = Safrano::Response.new
    before.tap_error { |err| dispatch_error(err) }
          .tap_valid { |_res| dispatch }

  rescue Sequel::Error => e
    OpenTelemetry::Trace.current_span.tap do |span|
      span.record_exception(e)
      span.status = OpenTelemetry::Trace::Status.error("Unhandled exception of type: #{e.class}")
    end
    dispatch_error(Safrano::SequelExceptionError.new(e))
  end
  @response.finish
end