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