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



185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
# File 'lib/stack-service-base/open_telemetry.rb', line 185

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