Class: ServiceDesk::Emails

Inherits:
Object
  • Object
show all
Defined in:
lib/service_desk/emails.rb

Instance Method Summary collapse

Constructor Details

#initialize(project) ⇒ Emails

Returns a new instance of Emails.



8
9
10
# File 'lib/service_desk/emails.rb', line 8

def initialize(project)
  @project = project
end

Instance Method Details

#addressObject



20
21
22
# File 'lib/service_desk/emails.rb', line 20

def address
  custom_address || system_address
end

#alias_addressObject



28
29
30
31
32
33
34
# File 'lib/service_desk/emails.rb', line 28

def alias_address
  return unless Gitlab::Email::ServiceDeskEmail.enabled?

  key = service_desk_setting&.project_key || default_service_desk_suffix

  Gitlab::Email::ServiceDeskEmail.address_for_key("#{project.full_path_slug}-#{key}")
end

#all_addressesObject



12
13
14
15
16
17
18
# File 'lib/service_desk/emails.rb', line 12

def all_addresses
  [
    incoming_address,
    alias_address,
    custom_address
  ].compact
end

#default_subaddress_partObject



45
46
47
# File 'lib/service_desk/emails.rb', line 45

def default_subaddress_part
  "#{project.full_path_slug}-#{default_service_desk_suffix}"
end

#incoming_addressObject



36
37
38
39
40
41
42
43
# File 'lib/service_desk/emails.rb', line 36

def incoming_address
  return unless ServiceDesk.enabled?(project)

  config = Gitlab.config.incoming_email
  wildcard = Gitlab::Email::Common::WILDCARD_PLACEHOLDER

  config.address&.gsub(wildcard, default_subaddress_part)
end

#system_addressObject



24
25
26
# File 'lib/service_desk/emails.rb', line 24

def system_address
  alias_address || incoming_address
end