View Source Gringotts.Adapter (gringotts v1.1.1)

Validates the "required" configuration.

All gateway modules must use this module, which provides a run-time configuration validator.

Gringotts picks up the merchant's Gateway authentication secrets from the Application config. The configuration validator can be customized by providing a list of required_config keys. The validator will check if these keys are available at run-time, before each call to the Gateway.

example

Example

Say a merchant must provide his secret_user_name and secret_password to some Gateway XYZ. Then, Gringotts expects that the GatewayXYZ module would use Adapter in the following manner:

defmodule Gringotts.Gateways.GatewayXYZ do
  
  use Gringotts.Adapter, required_config: [:secret_user_name, :secret_password]
  use Gringotts.Gateways.Base
  
  # the rest of the implentation
end

And, the merchant woud provide these secrets in the Application config, possibly via config/config.exs like so,

# config/config.exs

config :gringotts, Gringotts.Gateways.GatewayXYZ,
  adapter: Gringotts.Gateways.GatewayXYZ,
  secret_user_name: "some_really_secret_user_name",
  secret_password: "some_really_secret_password"