Skip to content

Commit

Permalink
refactor: application context creation
Browse files Browse the repository at this point in the history
  • Loading branch information
bethesque committed Mar 22, 2024
1 parent 0dc7196 commit 80a4b4b
Showing 1 changed file with 24 additions and 25 deletions.
49 changes: 24 additions & 25 deletions lib/pact_broker/application_context.rb
Original file line number Diff line number Diff line change
@@ -1,10 +1,3 @@
require "pact_broker/api/decorators/configuration"
require "pact_broker/api/contracts/configuration"
require "pact_broker/api/decorators/decorator_context_creator"
require "pact_broker/webhooks/execution_configuration_creator"
require "pact_broker/errors/error_logger"
require "pact_broker/api/resources/error_response_generator"

module PactBroker
class ApplicationContext
attr_reader :decorator_configuration,
Expand All @@ -17,30 +10,36 @@ class ApplicationContext
:error_logger,
:error_response_generator

def initialize(params = {})
params_with_defaults = {
def initialize(params)
@decorator_configuration = params[:decorator_configuration]
@api_contract_configuration = params[:api_contract_configuration]
@decorator_context_creator = params[:decorator_context_creator]
@webhook_execution_configuration_creator = params[:webhook_execution_configuration_creator]
@resource_authorizer = params[:resource_authorizer]
@before_resource = params[:before_resource]
@after_resource = params[:after_resource]
@error_logger = params[:error_logger]
@error_response_generator = params[:error_response_generator]
end

def self.default_application_context(overrides = {})
require "pact_broker/api/decorators/configuration"
require "pact_broker/api/contracts/configuration"
require "pact_broker/api/decorators/decorator_context_creator"
require "pact_broker/webhooks/execution_configuration_creator"
require "pact_broker/errors/error_logger"
require "pact_broker/api/resources/error_response_generator"

params = {
decorator_configuration: PactBroker::Api::Decorators::Configuration.default_configuration,
api_contract_configuration: PactBroker::Api::Contracts::Configuration.default_configuration,
decorator_context_creator: PactBroker::Api::Decorators::DecoratorContextCreator,
webhook_execution_configuration_creator: PactBroker::Webhooks::ExecutionConfigurationCreator,
error_logger: PactBroker::Errors::ErrorLogger,
error_response_generator: PactBroker::Api::Resources::ErrorResponseGenerator
}.merge(params)
error_response_generator: PactBroker::Api::Resources::ErrorResponseGenerator,
}.merge(overrides)

@decorator_configuration = params_with_defaults[:decorator_configuration]
@api_contract_configuration = params_with_defaults[:api_contract_configuration]
@decorator_context_creator = params_with_defaults[:decorator_context_creator]
@webhook_execution_configuration_creator = params_with_defaults[:webhook_execution_configuration_creator]
@resource_authorizer = params_with_defaults[:resource_authorizer]
@before_resource = params_with_defaults[:before_resource]
@after_resource = params_with_defaults[:after_resource]
@error_logger = params_with_defaults[:error_logger]
@error_response_generator = params_with_defaults[:error_response_generator]

end

def self.default_application_context(overrides = {})
ApplicationContext.new(overrides)
ApplicationContext.new(params)
end
end
end

0 comments on commit 80a4b4b

Please sign in to comment.