Class: PostmarkClient::Client::Base Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/postmark_client/client/base.rb

Overview

This class is abstract.

Subclass and implement specific API resource methods

Base client class for all Postmark API interactions. Provides common HTTP functionality using Faraday.

Examples:

Creating a custom resource client

class MyResource < PostmarkClient::Client::Base
  def fetch(id)
    get("/my-resource/#{id}")
  end
end

Direct Known Subclasses

Resources::Emails

Constant Summary collapse

API_BASE_URL =

Postmark API base URL

"https://api.postmarkapp.com"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_token: nil, **options) ⇒ Base

Initialize a new API client

Parameters:

  • api_token (String, nil) (defaults to: nil)

    the Postmark server API token. Falls back to PostmarkClient.configuration.api_token if not provided.

  • options (Hash)

    additional configuration options

Options Hash (**options):

  • :timeout (Integer)

    request timeout in seconds (default: 30)

  • :open_timeout (Integer)

    connection open timeout in seconds (default: 10)

  • :base_url (String)

    override the default API base URL

Raises:



39
40
41
42
43
44
# File 'lib/postmark_client/client/base.rb', line 39

def initialize(api_token: nil, **options)
  @api_token = api_token || PostmarkClient.configuration.api_token
  @options = options

  raise ConfigurationError, "API token is required" if @api_token.nil? || @api_token.empty?
end

Instance Attribute Details

#api_tokenString (readonly)

Returns the API token for authentication.

Returns:

  • (String)

    the API token for authentication



24
25
26
# File 'lib/postmark_client/client/base.rb', line 24

def api_token
  @api_token
end

#optionsHash (readonly)

Returns additional options passed to the client.

Returns:

  • (Hash)

    additional options passed to the client



27
28
29
# File 'lib/postmark_client/client/base.rb', line 27

def options
  @options
end