class Yext::Api::Utils::Configuration
A configuration class for global configurations for interfacing with the Yext
API.
The class is a Singleton class to simplify accessing the configuration.
Documentation for how the various configurations are used within Yext
can be found here:
http://developer.yext.com/docs/administrative-api/#section/Policies-and-Conventions
Initialization:
Some values within the
The configurations:
*required* default: "me" The ID of the account which you are interfacing with. If the default value of "me" is used, the account_id will default to the account which owns the api_key.
*required* The API key for the Yext Application which is being used to submit the request through.
The version of the Yext API that the request would like to use for any given API call. If left as nil, the gem will try to use the most up-to-date known version of all APIs whenever possible, and future updates will adjust the defaults for each call to the most recent known version of the API. To keep your application stable, you should set this value to a static known value (such as the date the project using the Yext API first started development). The Yext API will accept a default of "20161012" to use the initially released v2 API.
The validation level to use for a request. Yext defaults this to "strict". You can set this to "lenient" to allow more lenient error and warning handling on your requests. Validation should be a value from Yext::Api::Enumerations::Validation
The username of a Yext User that the call is being made on the behalf of. This will affect the logging of who made a change.
The id of a Yext User that the call is being made on the behalf of. This will affect the logging of who made a change.
sandbox
Boolean that indicates if the gem should use the production or sandbox URL.
Attributes
account_id[RW]
api_key[RW]
api_version[RW]
sandbox[RW]
validation_level[R]
yext_user_id[RW]
yext_username[RW]
Public Class Methods
new()
click to toggle source
# File lib/yext/api/utils/configuration.rb, line 69 def initialize read_from_environment_variables end
Public Instance Methods
param_account_id()
click to toggle source
# File lib/yext/api/utils/configuration.rb, line 82 def param_account_id account_id || "me" end
validation_level=(value)
click to toggle source
# File lib/yext/api/utils/configuration.rb, line 73 def validation_level=(value) if (value.present? || value == false) && !Yext::Api::Enumerations::Validation.all.include?(value) raise ArgumentError, "validation must be one of: #{Yext::Api::Enumerations::Validation.all.join(',')}" end @validation_level = value end
Private Instance Methods
read_from_environment_variables()
click to toggle source
# File lib/yext/api/utils/configuration.rb, line 88 def read_from_environment_variables @sandbox = !Rails.env.production? @account_id = ENV["YEXT_ACCOUNT_ID"] @api_key = ENV["YEXT_API_KEY"] @api_version = ENV["YEXT_API_VERSION"] @validation_level = ENV["YEXT_VALIDATION_LEVEL"] @yext_username = ENV["YEXT_USERNAME"] @yext_user_id = ENV["YEXT_USER_ID"] end