module Appsignal::Integrations::WebmachinePlugin::FSM

def handle_exceptions_with_appsignal

def handle_exceptions_with_appsignal
  handle_exceptions_without_appsignal do
    begin
      yield
    rescue Exception => e # rubocop:disable Lint/RescueException
      Appsignal.set_error(e)
      raise e
    end
  end
end

def run_with_appsignal

def run_with_appsignal
  transaction = Appsignal::Transaction.create(
    SecureRandom.uuid,
    Appsignal::Transaction::HTTP_REQUEST,
    request,
    :params_method => :query
  )
  transaction.set_action_if_nil("#{resource.class.name}##{request.method}")
  Appsignal.instrument("process_action.webmachine") do
    run_without_appsignal
  end
  Appsignal::Transaction.complete_current!
end