diff --git a/features/step_definitions/request.rb b/features/step_definitions/request.rb index cbb001d3fdec..511517b690b0 100644 --- a/features/step_definitions/request.rb +++ b/features/step_definitions/request.rb @@ -76,10 +76,10 @@ def build_given(api_version, operation) # make sure we have a fresh instance of API client and configuration given_api = Object.const_get("DatadogAPIClient::V#{api_version}") - given_configuration = given_api.const_get("Configuration").new - given_configuration.api_key['apiKeyAuth'] = ENV["DD_TEST_CLIENT_API_KEY"] - given_configuration.api_key['appKeyAuth'] = ENV["DD_TEST_CLIENT_APP_KEY"] - given_api_client = given_api.const_get("ApiClient").new given_configuration + given_configuration = given_api::Configuration.new + given_configuration.api_key = ENV["DD_TEST_CLIENT_API_KEY"] + given_configuration.application_key = ENV["DD_TEST_CLIENT_APP_KEY"] + given_api_client = given_api::ApiClient.new given_configuration given_api_instance = api.const_get("#{api_name}Api").new given_api_client method = given_api_instance.method("#{operation_name}_with_http_info".to_sym) @@ -115,11 +115,11 @@ def build_given(api_version, operation) Given('a valid "apiKeyAuth" key in the system') do - configuration.api_key['apiKeyAuth'] = ENV["DD_TEST_CLIENT_API_KEY"] + configuration.api_key = ENV["DD_TEST_CLIENT_API_KEY"] end Given('a valid "appKeyAuth" key in the system') do - configuration.api_key['appKeyAuth'] = ENV["DD_TEST_CLIENT_APP_KEY"] + configuration.application_key = ENV["DD_TEST_CLIENT_APP_KEY"] end Given(/^an instance of "([^"]+)" API$/) do |api_name| diff --git a/lib/datadog_api_client.rb b/lib/datadog_api_client.rb index 7096afa0e308..a0e155cec050 100644 --- a/lib/datadog_api_client.rb +++ b/lib/datadog_api_client.rb @@ -1,5 +1,4 @@ require 'datadog_api_client/version' require 'datadog_api_client/v1' require 'datadog_api_client/v2' - - +require 'datadog_api_client/api_key_configuration' diff --git a/lib/datadog_api_client/api_key_configuration.rb b/lib/datadog_api_client/api_key_configuration.rb new file mode 100644 index 000000000000..a7859ad72074 --- /dev/null +++ b/lib/datadog_api_client/api_key_configuration.rb @@ -0,0 +1,33 @@ +require 'datadog_api_client/v1' +require 'datadog_api_client/v2' + +# Extend the automatically-generated client configuration classes with a user-friendly +# authentication configuration, hiding the original #api_key method. + +module DatadogAPIClient::V1 + class Configuration + private :api_key # Make original getter private + + def api_key=(api_key) + @api_key['apiKeyAuth'] = api_key + end + + def application_key=(app_key) + @api_key['appKeyAuth'] = app_key + end + end +end + +module DatadogAPIClient::V2 + class Configuration + private :api_key # Make original getter private + + def api_key=(api_key) + @api_key['apiKeyAuth'] = api_key + end + + def application_key=(app_key) + @api_key['appKeyAuth'] = app_key + end + end +end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 00fa029fa560..108a85b11871 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -99,11 +99,11 @@ def load_fixture(fixture) m = example.metadata[:file_path].match /spec\/v(?\d+)\/.*/ @api_version = m[:version] api = Object.const_get("DatadogAPIClient::V#{@api_version}") - @configuration = api.const_get("Configuration").new - @configuration.api_key["apiKeyAuth"] = ENV["DD_TEST_CLIENT_API_KEY"] - @configuration.api_key["appKeyAuth"] = ENV["DD_TEST_CLIENT_APP_KEY"] - @configuration.debugging = (!ENV["DEBUG"].nil? and ENV["DEBUG"] != false) - @api_client = api.const_get("ApiClient").new @configuration + @configuration = api::Configuration.new + @configuration.api_key = ENV["DD_TEST_CLIENT_API_KEY"] + @configuration.application_key = ENV["DD_TEST_CLIENT_APP_KEY"] + @configuration.debugging = (!ENV["DEBUG"].nil? and ENV["DEBUG"] != "false") + @api_client = api::ApiClient.new @configuration end config.after(:suite) do