Sha256: 011ddf66cbf169df7c9440476a06e9e8ce33bcecf96eaf6d78a1acb94d1bf8cb

Contents?: true

Size: 1.08 KB

Versions: 46

Compression:

Stored size: 1.08 KB

Contents

require 'kramdown'

class Jets::Server
  class ApiGateway
    def self.call(env)
      Jets.boot
      route = RouteMatcher.new(env).find_route
      if route
        proxy = LambdaAwsProxy.new(route, env)
        triplet = proxy.response
      else
        [404, {'Content-Type' => 'text/html'}, [routes_error_message(env)]]
      end
    end

    def self.routes_error_message(env)
      message = "<h2>404 Error: Route #{env['PATH_INFO'].sub('/','')} not found</h2>"
      if Jets.env != "production"
        message << "<p>Here are the routes defined in your application:</p>"
        message << "#{routes_table}"
      end
      message
    end

    # Show pretty route table for user to help with debugging in non-production mode
    def self.routes_table
      routes = Jets::Router.routes

      return "Your routes table is empty." if routes.empty?

      text = "Verb | Path | Controller#action\n"
      text << "--- | --- | ---\n"
      routes.each do |route|
        text << "#{route.method} | #{route.path} | #{route.to}\n"
      end
      Kramdown::Document.new(text).to_html
    end
  end
end

Version data entries

46 entries across 46 versions & 1 rubygems

Version Path
jets-0.10.4 lib/jets/server/api_gateway.rb
jets-0.10.3 lib/jets/server/api_gateway.rb
jets-0.10.2 lib/jets/server/api_gateway.rb
jets-0.10.1 lib/jets/server/api_gateway.rb
jets-0.10.0 lib/jets/server/api_gateway.rb
jets-0.9.2 lib/jets/server/api_gateway.rb
jets-0.9.1 lib/jets/server/api_gateway.rb
jets-0.9.0 lib/jets/server/api_gateway.rb
jets-0.8.18 lib/jets/server/api_gateway.rb
jets-0.8.17 lib/jets/server/api_gateway.rb
jets-0.8.15 lib/jets/server/api_gateway.rb
jets-0.8.14 lib/jets/server/api_gateway.rb
jets-0.8.13 lib/jets/server/api_gateway.rb
jets-0.8.12 lib/jets/server/api_gateway.rb
jets-0.8.11 lib/jets/server/api_gateway.rb
jets-0.8.10 lib/jets/server/api_gateway.rb
jets-0.8.9 lib/jets/server/api_gateway.rb
jets-0.8.8 lib/jets/server/api_gateway.rb
jets-0.8.6 lib/jets/server/api_gateway.rb
jets-0.8.5 lib/jets/server/api_gateway.rb