Sha256: 0251e0d8923b3661d0af85823b00ef30d0f69d0bde4f4b3bf6dfd9c0ef73a2b0

Contents?: true

Size: 1.36 KB

Versions: 66

Compression:

Stored size: 1.36 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
      add_resources
    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)
        if route.authorizer
          add_parameter(route.authorizer_id, description: route.authorizer_metadata)
        end
      end

      if @app_class.authorizer
        add_parameter(@app_class.authorizer_id, description: @app_class.authorizer_metadata)
      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

66 entries across 66 versions & 2 rubygems

Version Path
jets-4.0.12 lib/jets/cfn/builders/controller_builder.rb
jets-4.0.11 lib/jets/cfn/builders/controller_builder.rb
jets-4.0.10 lib/jets/cfn/builders/controller_builder.rb
jets-4.0.9 lib/jets/cfn/builders/controller_builder.rb
jets-4.0.8 lib/jets/cfn/builders/controller_builder.rb
jets-4.0.7 lib/jets/cfn/builders/controller_builder.rb
jets-4.0.6 lib/jets/cfn/builders/controller_builder.rb
jets-4.0.5 lib/jets/cfn/builders/controller_builder.rb
jets-4.0.4 lib/jets/cfn/builders/controller_builder.rb
jets-4.0.3 lib/jets/cfn/builders/controller_builder.rb
jets-4.0.2 lib/jets/cfn/builders/controller_builder.rb
jets-4.0.1 lib/jets/cfn/builders/controller_builder.rb
jets-4.0.0 lib/jets/cfn/builders/controller_builder.rb
jets-3.2.2 lib/jets/cfn/builders/controller_builder.rb
jets-3.2.1 lib/jets/cfn/builders/controller_builder.rb
jets.benforeva-3.0.17.pre.mount.pre.fix lib/jets/cfn/builders/controller_builder.rb
jets-3.2.0 lib/jets/cfn/builders/controller_builder.rb
jets-3.1.5 lib/jets/cfn/builders/controller_builder.rb
jets-3.1.4 lib/jets/cfn/builders/controller_builder.rb
jets-3.1.3 lib/jets/cfn/builders/controller_builder.rb