Class: Tasker::Orchestration::ConnectionBuilder
- Inherits:
-
Object
- Object
- Tasker::Orchestration::ConnectionBuilder
- Defined in:
- lib/tasker/orchestration/connection_builder.rb
Overview
ConnectionBuilder handles Faraday connection configuration and building
This component provides focused responsibility for building and configuring Faraday connections based on API handler configuration, with support for custom connection block configuration.
Defined Under Namespace
Classes: ConfigValidator
Instance Method Summary collapse
-
#build_connection(config) {|Faraday::Connection| ... } ⇒ Faraday::Connection
Build a Faraday connection from configuration.
-
#validate_config(config) ⇒ Object
Validate configuration has required fields.
Instance Method Details
#build_connection(config) {|Faraday::Connection| ... } ⇒ Faraday::Connection
Build a Faraday connection from configuration
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/tasker/orchestration/connection_builder.rb', line 18 def build_connection(config, &connection_block) validate_config(config) Rails.logger.debug do "ConnectionBuilder: Building connection to #{config.url} " \ "with #{config.params} params and #{config.headers} headers" end connection = Faraday.new( url: config.url, params: config.params || {}, headers: config.headers || {}, ssl: config.ssl ) # Apply custom configuration block if provided if connection_block Rails.logger.debug('ConnectionBuilder: Applying custom connection configuration') yield(connection) end connection rescue StandardError => e Rails.logger.error( "ConnectionBuilder: Failed to build connection to #{config&.url}: #{e.}" ) raise end |
#validate_config(config) ⇒ Object
Validate configuration has required fields
51 52 53 |
# File 'lib/tasker/orchestration/connection_builder.rb', line 51 def validate_config(config) ConfigValidator.validate(config) end |