lib/jets/cfn/builders/api_gateway_builder.rb in jets-1.1.5 vs lib/jets/cfn/builders/api_gateway_builder.rb in jets-1.2.0

- old
+ new

@@ -11,10 +11,11 @@ # compose is an interface method def compose return unless @options[:templates] || @options[:stack_type] != :minimal add_gateway_rest_api + add_custom_domain add_gateway_routes end # template_path is an interface method def template_path @@ -31,13 +32,32 @@ rest_api = Jets::Resource::ApiGateway::RestApi.new add_resource(rest_api) add_outputs(rest_api.outputs) deployment = Jets::Resource::ApiGateway::Deployment.new - add_output("RestApiUrl", Value: deployment.outputs["RestApiUrl"]) + outputs = deployment.outputs(true) + add_output("RestApiUrl", Value: outputs["RestApiUrl"]) end + def add_custom_domain + return unless Jets.custom_domain? + add_domain_name + add_route53_dns + end + + def add_domain_name + domain_name = Jets::Resource::ApiGateway::DomainName.new + add_resource(domain_name) + add_outputs(domain_name.outputs) + end + + def add_route53_dns + dns = Jets::Resource::Route53::RecordSet.new + add_resource(dns) + add_outputs(dns.outputs) + end + # Adds route related Resources and Outputs def add_gateway_routes # The routes required a Gateway Resource to contain them. # TODO: Support more routes. Right now outputing all routes in 1 template will hit the 60 routes limit. # Will have to either output them as a joined string or break this up to multiple templates. @@ -49,10 +69,10 @@ # build the parent ApiGateway::Resource nodes also Jets::Router.all_paths.each do |path| homepage = path == '' next if homepage # handled by RootResourceId output already - resource = Jets::Resource::ApiGateway::Resource.new(path) + resource = Jets::Resource::ApiGateway::Resource.new(path, internal: true) add_resource(resource) add_outputs(resource.outputs) end end end