class Qyu::Queue::SQS::ConfigurationValidator

Constants

VALID_REGIONS

Attributes

errors[R]

Public Class Methods

new(config) click to toggle source
# File lib/qyu/queue/sqs/configuration_validator.rb, line 14
def initialize(config)
  @config = config
  @errors = []
end

Public Instance Methods

valid?() click to toggle source
# File lib/qyu/queue/sqs/configuration_validator.rb, line 19
def valid?
  validate
  @errors.empty?
end
validate() click to toggle source
# File lib/qyu/queue/sqs/configuration_validator.rb, line 24
def validate
  validate_aws_region
  validate_aws_access_key_id
  validate_aws_secret_access_key
  validate_queue_prefix
  validate_message_visibility_timeout
  validate_message_retention_period
  validate_maximum_message_size
end

Private Instance Methods

validate_aws_access_key_id() click to toggle source
# File lib/qyu/queue/sqs/configuration_validator.rb, line 53
def validate_aws_access_key_id
  if @config[:access_key_id].nil? || @config[:access_key_id].blank?
    @errors << 'AWS access_key_id must be present.'
  end
end
validate_aws_region() click to toggle source
# File lib/qyu/queue/sqs/configuration_validator.rb, line 42
def validate_aws_region
  unless @config[:region].present?
    @errors << 'AWS region must be present.'
    return
  end

  unless VALID_REGIONS.include?(@config[:region])
    @errors << 'AWS region invalid.'
  end
end
validate_aws_secret_access_key() click to toggle source
# File lib/qyu/queue/sqs/configuration_validator.rb, line 59
def validate_aws_secret_access_key
  if @config[:secret_access_key].nil? || @config[:secret_access_key].blank?
    @errors << 'AWS secret_access_key must be present.'
  end
end
validate_maximum_message_size() click to toggle source
# File lib/qyu/queue/sqs/configuration_validator.rb, line 81
def validate_maximum_message_size
  return unless @config[:maximum_message_size]
  if @config[:maximum_message_size].to_i < 1_024 ||
    @config[:maximum_message_size].to_i > 262_144
    @errors << 'maximum_message_size should be between 1,024 and 262,144 bytes'
  end
end
validate_message_retention_period() click to toggle source
# File lib/qyu/queue/sqs/configuration_validator.rb, line 73
def validate_message_retention_period
  return unless @config[:message_retention_period]
  if @config[:message_retention_period].to_i < 60 ||
    @config[:message_retention_period].to_i > 1_209_600
    @errors << 'message_retention_period should be between 60 and 1,209,600 seconds'
  end
end
validate_message_visibility_timeout() click to toggle source
# File lib/qyu/queue/sqs/configuration_validator.rb, line 65
def validate_message_visibility_timeout
  return unless @config[:message_visibility_timeout]
  if @config[:message_visibility_timeout].to_i < 0 ||
    @config[:message_visibility_timeout].to_i > 43_200
    @errors << 'message_visibility_timeout should be between 0 and 43,200 seconds'
  end
end
validate_queue_prefix() click to toggle source
# File lib/qyu/queue/sqs/configuration_validator.rb, line 36
def validate_queue_prefix
  unless @config[:queue_prefix]
    @errors << 'queue_prefix must be present.'
  end
end