Sha256: d8c62eef7d26608c4b5a723835e0a67980c22c2bb0333b220e4ccafb34389d08

Contents?: true

Size: 950 Bytes

Versions: 9

Compression:

Stored size: 950 Bytes

Contents

module Mirage
  class Server < Sinatra::Base
    REQUESTS = {}
    delete '/requests' do
      synchronize do
        REQUESTS.clear
      end

      200
    end

    delete '/requests/:id' do
      synchronize do
        REQUESTS.delete(response_id)
      end

      200
    end

    get '/requests/:id' do
      content_type :json
      tracked_requests = tracked_requests(response_id)
      response = []
      if tracked_requests
        tracked_requests.collect do |tracked_request|
          tracked_request.body.rewind
          body = tracked_request.body.read

          parameters = tracked_request.params.dup.select { |key, value| key != body }

          response << {id: request.url,
           request_url: tracked_request.url,
           headers: extract_http_headers(tracked_request.env),
           parameters: parameters,
           body: body}
        end
        response.to_json
      else
        404
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
mirage-4.0.0.alpha10 server/routes/requests.rb
mirage-4.0.0.alpha9 server/routes/requests.rb
mirage-4.0.0.alpha8 server/routes/requests.rb
mirage-4.0.0.alpha6 server/routes/requests.rb
mirage-4.0.0.alpha5 server/routes/requests.rb
mirage-4.0.0.alpha4 server/routes/requests.rb
mirage-4.0.0.alpha3 server/routes/requests.rb
mirage-4.0.0.alpha2 server/routes/requests.rb
mirage-4.0.0.alpha1 server/routes/requests.rb