lib/yext/api/utils/configuration.rb in yext-api-0.1.5 vs lib/yext/api/utils/configuration.rb in yext-api-0.1.7
- old
+ new
@@ -53,27 +53,10 @@
# 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.
- #
- # default_callback_processor
- # The default class to be used to process webhook messages that are called.
- # The code will warn about any missing webhook messages in a default processor.
- # set_callback_processor(callback_function_name, processor)
- # The class to be used to process webhook messages for a specific callback.
- # If the method callback_function_name is not a public instance method for processor, an error
- # will be raised.
- #
- # The processor class must be able to be instanciated with the following arguments:
- # * meta - a hash of metadata for the webhook
- # * object - a Spyke::Base object that represents the object that ws updated or changed
- # to cause the hook event.
- # * language_profiles - (optional) An array of objects.
- #
- # The functions that can be called for the webhooks are:
- # * add_request_changed
class Configuration
include Singleton
attr_accessor :account_id,
:api_key,
@@ -98,82 +81,10 @@
def param_account_id
account_id || "me"
end
- def default_callback_processor=(value)
- callback_names.each do |callback_name|
- verify_method(value, callback_name)
- end
-
- callback_processors[:default] = value
- end
-
- def default_callback_processor
- callback_processors[:default]
- end
-
- def set_callback_processor(callback_function_name, processor)
- callback_function_name = callback_function_name.downcase.to_sym
-
- validate_arguments(callback_function_name, processor)
-
- if processor.present?
- callback_processors[callback_function_name.downcase.to_sym] = processor
- else
- callback_processors.delete(callback_function_name.downcase.to_sym)
- end
- end
-
- def get_callback_processor(callback_function_name)
- callback_function_name = callback_function_name.downcase.to_sym
-
- callback_processors.fetch(callback_function_name, callback_processors[:default])
- end
-
private
-
- def validate_arguments(callback_function_name, processor)
- raise ArgumentError, "invalid callback function #{callback_function_name}" unless callback_names.include?(callback_function_name)
-
- return if verify_method(processor, callback_function_name)
-
- raise ArgumentError, "#{processor.name} does not have a valid #{callback_function_name} function"
- end
-
- def callback_processors
- @callback_processors ||= {}
- end
-
- def callback_names
- %i[add_request_changed].dup
- end
-
- def verify_method(callback_class, method_name)
- return true if callback_class.blank?
- return true if valid_method_definition?(callback_class, method_name)
-
- warning_messsage = "The callback_processor does not include a valid #{method_name} method."
- if Object.const_defined?("Rails")
- Rails.logger.warn warning_messsage
- else
- # :nocov:
- puts warning_messsage
- # :nocov:
- end
-
- false
- end
-
- def valid_method_definition?(callback_class, method_name)
- return false if callback_class.public_instance_methods.grep(method_name).blank?
-
- method = callback_class.instance_method(method_name)
-
- return true if method.parameters.length.zero?
-
- method.parameters.count { |param_details| %i[keyreq req].include?(param_details.first) }.zero?
- end
def read_from_environment_variables
@sandbox = !Rails.env.production?
@account_id = ENV["YEXT_ACCOUNT_ID"]