Module: FulfilApi

Defined in:
lib/fulfil_api.rb,
lib/fulfil_api/error.rb,
lib/fulfil_api/client.rb,
lib/fulfil_api/report.rb,
lib/fulfil_api/version.rb,
lib/fulfil_api/relation.rb,
lib/fulfil_api/resource.rb,
lib/fulfil_api/tpl_client.rb,
lib/fulfil_api/test_helper.rb,
lib/fulfil_api/access_token.rb,
lib/fulfil_api/configuration.rb,
lib/fulfil_api/relation/naming.rb,
lib/fulfil_api/resource/errors.rb,
lib/fulfil_api/customer_shipment.rb,
lib/fulfil_api/relation/loadable.rb,
lib/fulfil_api/relation/batchable.rb,
lib/fulfil_api/relation/countable.rb,
lib/fulfil_api/resource/comparable.rb,
lib/fulfil_api/resource/persistable.rb,
lib/fulfil_api/resource/serializable.rb,
lib/fulfil_api/relation/query_methods.rb,
lib/fulfil_api/resource/attribute_type.rb,
lib/fulfil_api/resource/attribute_assignable.rb,
sig/fulfil_api.rbs

Defined Under Namespace

Modules: TestHelper Classes: AccessToken, Client, Configuration, CustomerShipment, Error, Relation, Report, Resource, TplClient

Constant Summary collapse

VERSION =

Returns:

  • (String)
"0.7.0"

Class Method Summary collapse

Class Method Details

.clientFulfilApi::Client

Builds an HTTP client to interact with an API endpoint of Fulfil.

To use a different configuration, wrap the call to the client method into an with_config block.

FulfilApi.with_config(...) do
FulfilApi.client.get(...)
end

Examples:

with a custom configuration

Returns:



220
221
222
# File 'lib/fulfil_api/client.rb', line 220

def self.client
  Client.new(FulfilApi.configuration)
end

.configurationFulfil::Configuration

Provides thread-safe access to the gem's configuration.

Returns:

  • (Fulfil::Configuration)

    The current configuration object.



71
72
73
74
# File 'lib/fulfil_api/configuration.rb', line 71

def self.configuration
  Thread.current[:fulfil_api_configuration] ||=
    @configuration ||= Configuration.new
end

.configuration=(options_or_configuration) ⇒ Fulfil::Configuration

Overwrites the configuration with the newly provided configuration options.

Parameters:

  • options (Hash, Fulfil::Configuration)

    A list of configuration options for the gem.

Returns:

  • (Fulfil::Configuration)

    The updated configuration object.



88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/fulfil_api/configuration.rb', line 88

def self.configuration=(options_or_configuration) # rubocop:disable Metrics/MethodLength
  Thread.current[:fulfil_api_configuration] =
    case options_or_configuration
    when Hash
      config = Configuration.new
      options_or_configuration.each { |key, value| config.send(:"#{key}=", value) }
      config
    when Configuration
      options_or_configuration
    else
      raise ArgumentError, "Expected Hash or Configuration, got #{options_or_configuration.class} instead"
    end
end

.configure {|config| ... } ⇒ void

This method returns an undefined value.

Allows the configuration of the gem in a thread-safe manner.

Yield Parameters:

  • config (Fulfil::Configuration)

    The current configuration object.



80
81
82
# File 'lib/fulfil_api/configuration.rb', line 80

def self.configure
  yield(configuration)
end

.tpl_clientFulfilApi::TplClient

Builds an HTTP client to interact with Fulfil's 3PL API endpoint.

Examples:

FulfilApi.tpl_client.get("inbound-transfers")
FulfilApi.tpl_client.post("inbound-transfers/receive.json", { tracking_number: "123" })

Returns:



228
229
230
# File 'lib/fulfil_api/tpl_client.rb', line 228

def self.tpl_client
  TplClient.new(FulfilApi.configuration)
end

.with_config(temporary_options) { ... } ⇒ void

This method returns an undefined value.

Temporarily applies the provided configuration options on top of the currently active configuration, and then reverts after the block executes.

The temporary options are merged over a copy of the active configuration, so a block only needs to specify what it overrides — credentials and other settings (access_token, merchant_id, ...) are inherited rather than reset to their defaults.

Parameters:

  • temporary_options (Hash)

    A hash of temporary configuration options.

Yields:

  • Executes the block with the temporary configuration.



113
114
115
116
117
118
119
120
121
122
123
124
# File 'lib/fulfil_api/configuration.rb', line 113

def self.with_config(temporary_options)
  original_configuration = configuration

  self.configuration = original_configuration.dup.tap do |config|
    temporary_options.each { |key, value| config.public_send(:"#{key}=", value) }
  end

  yield
ensure
  # Revert to the original configuration
  Thread.current[:fulfil_api_configuration] = original_configuration
end