class Shokkenki::Consumer::Stubber::StubbedResponseMiddleware

Public Class Methods

new(interactions) click to toggle source
# File lib/shokkenki/consumer/stubber/stubbed_response_middleware.rb, line 10
def initialize interactions
  @interactions = interactions
end

Public Instance Methods

call(env) click to toggle source
# File lib/shokkenki/consumer/stubber/stubbed_response_middleware.rb, line 14
def call env
  request = Request.from_rack env
  interaction = @interactions.find request
  interaction ? RackResponse.from_interaction(interaction) : no_interaction(request)
end

Private Instance Methods

no_interaction(request) click to toggle source
# File lib/shokkenki/consumer/stubber/stubbed_response_middleware.rb, line 22
def no_interaction request
  body = {
    :shokkenki => {
      :message => 'No matching responses were found for the request.',
      :request => request.to_hash
    }
  }
  [404, {'Content-Type' => 'application/json'}, [body.to_json]]
end