Sha256: 19948e1cc96d557aecdfc5ae795ae363775524a181af57fc2faa486da5ef6542

Contents?: true

Size: 787 Bytes

Versions: 2

Compression:

Stored size: 787 Bytes

Contents

# typed: strict
# frozen_string_literal: true

module Vigiles
  module Archive
    extend T::Sig

    Types       = Vigiles::Types
    ContentType = Types::ContentType

    class UnrecordableRequestError < StandardError
      sig { params(reason: String).void }
      def initialize(reason)
        @reason = reason
        super
      end
    end
    
    sig { params(req: ActionDispatch::Request, res: Rack::Response).returns(T.nilable(Conversation)) }
    def self.record_conversation(req:, res:)
      content_type = req.content_type
      if (recorder = Vigiles.spec.recorders[content_type]).nil?
        raise \
          UnrecordableRequestError,
          "no recorder configured for content type: #{content_type}"
      end

      recorder.record(req:, res:)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
vigiles-0.1.3 lib/vigiles/archive.rb
vigiles-0.1.2 lib/vigiles/archive.rb