Class: Tasker::StepHandler::Api::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/tasker/step_handler/api.rb

Overview

Configuration class for API step handlers

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(url:, params: {}, ssl: nil, headers: default_headers, enable_exponential_backoff: true, retry_delay: 1.0, jitter_factor: rand) ⇒ Config

Creates a new API configuration

Parameters:

  • url (String)

    The base URL for API requests

  • params (Hash) (defaults to: {})

    Query parameters for requests

  • ssl (Hash, nil) (defaults to: nil)

    SSL configuration options

  • headers (Hash) (defaults to: default_headers)

    Request headers

  • enable_exponential_backoff (Boolean) (defaults to: true)

    Whether to use exponential backoff

  • retry_delay (Float) (defaults to: 1.0)

    Delay in seconds before retrying

  • jitter_factor (Float) (defaults to: rand)

    Random factor for jitter calculation



94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/tasker/step_handler/api.rb', line 94

def initialize(
  url:,
  params: {},
  ssl: nil,
  headers: default_headers,
  enable_exponential_backoff: true,
  retry_delay: 1.0,
  jitter_factor: rand
)
  @url = url
  @params = params
  @ssl = ssl
  @headers = headers
  @enable_exponential_backoff = enable_exponential_backoff
  @retry_delay = retry_delay
  @jitter_factor = jitter_factor
end

Instance Attribute Details

#enable_exponential_backoffBoolean

Returns Whether to use exponential backoff for retries.

Returns:

  • (Boolean)

    Whether to use exponential backoff for retries



79
80
81
# File 'lib/tasker/step_handler/api.rb', line 79

def enable_exponential_backoff
  @enable_exponential_backoff
end

#headersHash

Returns Request headers.

Returns:

  • (Hash)

    Request headers



73
74
75
# File 'lib/tasker/step_handler/api.rb', line 73

def headers
  @headers
end

#jitter_factorFloat

Returns Random factor for jitter calculation (0.0-1.0).

Returns:

  • (Float)

    Random factor for jitter calculation (0.0-1.0)



82
83
84
# File 'lib/tasker/step_handler/api.rb', line 82

def jitter_factor
  @jitter_factor
end

#paramsHash

Returns The default query parameters for requests.

Returns:

  • (Hash)

    The default query parameters for requests



67
68
69
# File 'lib/tasker/step_handler/api.rb', line 67

def params
  @params
end

#retry_delayFloat

Returns Delay in seconds before retrying after failure.

Returns:

  • (Float)

    Delay in seconds before retrying after failure



76
77
78
# File 'lib/tasker/step_handler/api.rb', line 76

def retry_delay
  @retry_delay
end

#sslHash?

Returns SSL configuration options.

Returns:

  • (Hash, nil)

    SSL configuration options



70
71
72
# File 'lib/tasker/step_handler/api.rb', line 70

def ssl
  @ssl
end

#urlString

Returns The base URL for API requests.

Returns:

  • (String)

    The base URL for API requests



64
65
66
# File 'lib/tasker/step_handler/api.rb', line 64

def url
  @url
end

Instance Method Details

#default_headersHash

Returns the default headers for API requests

Returns:

  • (Hash)

    The default headers



115
116
117
118
119
120
# File 'lib/tasker/step_handler/api.rb', line 115

def default_headers
  {
    'Content-Type' => 'application/json',
    'Accept' => 'application/json'
  }
end