class ThreeScaleToolbox::Commands::ImportCommand::OpenAPI::UpdateServiceProxyStep
Public Instance Methods
call()
click to toggle source
Updates Proxy config
# File lib/3scale_toolbox/commands/import_command/openapi/update_service_proxy_step.rb, line 10 def call proxy_settings = {} add_endpoint_settings(proxy_settings) add_sandbox_endpoint_settings(proxy_settings) add_api_backend_settings(proxy_settings) add_security_proxy_settings(proxy_settings) return unless proxy_settings.size.positive? res = service.update_proxy proxy_settings if (errors = res['errors']) raise ThreeScaleToolbox::Error, "Service proxy has not been updated. #{errors}" end puts 'Service proxy updated' end
Private Instance Methods
add_api_backend_settings(settings)
click to toggle source
# File lib/3scale_toolbox/commands/import_command/openapi/update_service_proxy_step.rb, line 42 def add_api_backend_settings(settings) settings[:api_backend] = private_base_url unless private_base_url.nil? settings[:secret_token] = backend_api_secret_token unless backend_api_secret_token.nil? settings[:hostname_rewrite] = backend_api_host_header unless backend_api_host_header.nil? end
add_endpoint_settings(settings)
click to toggle source
# File lib/3scale_toolbox/commands/import_command/openapi/update_service_proxy_step.rb, line 30 def add_endpoint_settings(settings) return if production_public_base_url.nil? settings[:endpoint] = production_public_base_url end
add_sandbox_endpoint_settings(settings)
click to toggle source
# File lib/3scale_toolbox/commands/import_command/openapi/update_service_proxy_step.rb, line 36 def add_sandbox_endpoint_settings(settings) return if staging_public_base_url.nil? settings[:sandbox_endpoint] = staging_public_base_url end
add_security_proxy_settings(settings)
click to toggle source
# File lib/3scale_toolbox/commands/import_command/openapi/update_service_proxy_step.rb, line 48 def add_security_proxy_settings(settings) # nothing to add on proxy settings when no security required in openapi return if api_spec.security.nil? case (type = api_spec.security[:type]) when 'oauth2' settings[:credentials_location] = 'headers' settings[:oidc_issuer_type] = oidc_issuer_type unless oidc_issuer_type.nil? settings[:oidc_issuer_endpoint] = oidc_issuer_endpoint unless oidc_issuer_endpoint.nil? when 'apiKey' settings[:credentials_location] = credentials_location settings[:auth_user_key] = api_spec.security[:name] else raise ThreeScaleToolbox::Error, "Unexpected security scheme type #{type}" end end
credentials_location()
click to toggle source
# File lib/3scale_toolbox/commands/import_command/openapi/update_service_proxy_step.rb, line 65 def credentials_location case (in_f = api_spec.security[:in_f]) when 'query' 'query' when 'header' 'headers' else raise ThreeScaleToolbox::Error, "Unexpected security in_f field #{in_f}" end end
private_base_url()
click to toggle source
# File lib/3scale_toolbox/commands/import_command/openapi/update_service_proxy_step.rb, line 76 def private_base_url override_private_base_url || private_base_url_from_openapi end
private_base_url_from_openapi()
click to toggle source
# File lib/3scale_toolbox/commands/import_command/openapi/update_service_proxy_step.rb, line 80 def private_base_url_from_openapi return if api_spec.host.nil? "#{api_spec.scheme || 'https'}://#{api_spec.host}" end