Module: SesConfiguration

Extended by:
ActiveSupport::Concern
Defined in:
lib/app/models/concerns/ses_configuration.rb

Overview

AWS SES SSO Configuration

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/app/models/concerns/ses_configuration.rb', line 9

def self.included(base)
  base.class_eval do
    #
    # Fields
    #
    field :ses_source, type: String
    field :ses_source_arn_prefix, type: String
    field :ses_bounce_queue_name, type: String
    field :ses_region, type: String
  end
end

Instance Method Details

#aws_ses_clientObject

SES Client



38
39
40
41
42
43
44
# File 'lib/app/models/concerns/ses_configuration.rb', line 38

def aws_ses_client
  return nil unless ses_configured?

  # We want this to remake itself each time because it is possible that the
  # => user would change the access keys in between actions. Huh?
  @aws_ses_client ||= Aws::SES::Client.new(region: ses_region.presence || aws_region, credentials: aws_credentials)
end

#ses_configured?Boolean

Determine if AWS is configured

Returns:

  • (Boolean)


24
25
26
27
28
29
# File 'lib/app/models/concerns/ses_configuration.rb', line 24

def ses_configured?
  aws_configured? &&
    ses_source.present? &&
    ses_source_arn_prefix.present? &&
    (ses_region.present? || aws_region.present?)
end

#ses_source_arn(source = ses_source) ⇒ Object



31
32
33
# File 'lib/app/models/concerns/ses_configuration.rb', line 31

def ses_source_arn(source = ses_source)
  [ses_source_arn_prefix, source].compact.join('/')
end