Module: ActiveProject::Adapters::Fizzy::Connection
- Includes:
- Connections::Rest
- Included in:
- ActiveProject::Adapters::FizzyAdapter
- Defined in:
- lib/active_project/adapters/fizzy/connection.rb
Constant Summary collapse
- DEFAULT_BASE_URL =
"https://app.fizzy.do"
Constants included from Connections::HttpClient
Connections::HttpClient::DEFAULT_HEADERS, Connections::HttpClient::DEFAULT_RETRY_OPTS
Instance Attribute Summary
Attributes included from Connections::HttpClient
Instance Method Summary collapse
-
#initialize(config:) ⇒ Object
Initializes the Fizzy Adapter.
Methods included from Connections::Rest
Methods included from Connections::Pagination
Methods included from Connections::HttpClient
Methods included from Connections::Base
Instance Method Details
#initialize(config:) ⇒ Object
Initializes the Fizzy Adapter.
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/active_project/adapters/fizzy/connection.rb', line 14 def initialize(config:) unless config.is_a?(ActiveProject::Configurations::FizzyConfiguration) raise ArgumentError, "FizzyAdapter requires a FizzyConfiguration object" end super(config: config) account_slug = @config..fetch(:account_slug) access_token = @config..fetch(:access_token) base_url = @config.[:base_url] || DEFAULT_BASE_URL # Fizzy uses account_slug in URL path: /:account_slug/boards, etc. @base_url = "#{base_url}/#{account_slug}/" init_rest( base_url: @base_url, auth_middleware: ->(conn) { conn.request :authorization, "Bearer", access_token }, extra_headers: { "Accept" => "application/json", "Content-Type" => "application/json" } ) return if account_slug && !account_slug.to_s.empty? && access_token && !access_token.empty? raise ArgumentError, "FizzyAdapter configuration requires :account_slug and :access_token" end |