Sha256: d55ef59b5a0412df70b820d3f6a935f60f6e694be4fe1d54a59f8f15b6783262

Contents?: true

Size: 1.08 KB

Versions: 40

Compression:

Stored size: 1.08 KB

Contents

# Implements:
#
#   compose
#   template_path
#
module Jets::Cfn::Builders
  class ControllerBuilder < BaseChildBuilder
    # compose is an interface method for Interface module
    def compose
      add_common_parameters
      add_api_gateway_parameters
      add_functions
      add_routes
    end

    def add_api_gateway_parameters
      return if Jets::Router.routes.empty?

      add_parameter("RestApi", Description: "RestApi")
      scoped_routes.each do |route|
        resource = Jets::Resource::ApiGateway::Resource.new(route.path)
        add_parameter(resource.logical_id, Description: resource.desc)
      end
    end

    def add_routes
      scoped_routes.each_with_index do |route, i|
        method = Jets::Resource::ApiGateway::Method.new(route)
        add_resource(method)
        add_resource(method.permission)
        add_resource(method.cors) if Jets.config.cors
      end
    end

    # routes scoped to this controller template.
    def scoped_routes
      @routes ||= Jets::Router.routes.select do |route|
        route.controller_name == @app_class.to_s
      end
    end
  end
end

Version data entries

40 entries across 40 versions & 2 rubygems

Version Path
jets-2.1.7 lib/jets/cfn/builders/controller_builder.rb
jets-2.1.6 lib/jets/cfn/builders/controller_builder.rb
jets-2.1.5 lib/jets/cfn/builders/controller_builder.rb
jets-2.1.4 lib/jets/cfn/builders/controller_builder.rb
jets-2.1.3 lib/jets/cfn/builders/controller_builder.rb
jets-2.1.2 lib/jets/cfn/builders/controller_builder.rb
jets_bb_fork-0.0.4 lib/jets/cfn/builders/controller_builder.rb
jets-2.1.1 lib/jets/cfn/builders/controller_builder.rb
jets-2.1.0 lib/jets/cfn/builders/controller_builder.rb
jets-2.0.6 lib/jets/cfn/builders/controller_builder.rb
jets-2.0.5 lib/jets/cfn/builders/controller_builder.rb
jets-2.0.4 lib/jets/cfn/builders/controller_builder.rb
jets-2.0.3 lib/jets/cfn/builders/controller_builder.rb
jets-2.0.1 lib/jets/cfn/builders/controller_builder.rb
jets-2.0.0 lib/jets/cfn/builders/controller_builder.rb
jets-1.9.32 lib/jets/cfn/builders/controller_builder.rb
jets-1.9.31 lib/jets/cfn/builders/controller_builder.rb
jets-1.9.30 lib/jets/cfn/builders/controller_builder.rb
jets-1.9.29 lib/jets/cfn/builders/controller_builder.rb
jets-1.9.28 lib/jets/cfn/builders/controller_builder.rb