MetadataMapping: restructuration légère du code pour lisibilité…
This commit is contained in:
parent
a265b84efc
commit
0a6fb01008
|
@ -23,8 +23,11 @@ module EmailAction
|
|||
binding.pry
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def metadata_inputs(email)
|
||||
inputs = []
|
||||
|
||||
# add mail addresses and hostnames from headers
|
||||
inputs << ["To", "Delivered-To", "X-Original-To", "From", "Subject"].filter_map { |header_name|
|
||||
email.header_values(header_name)
|
||||
|
@ -33,31 +36,43 @@ module EmailAction
|
|||
}.flatten.filter_map() { |value|
|
||||
clean_subdomains(value)
|
||||
}.flatten
|
||||
|
||||
# add other values from headers
|
||||
inputs << email.header_values("X-Client-Id")
|
||||
inputs << ["X-Client-Id", "X-Entity-Id"].filter_map { |header_name|
|
||||
email.header_values(header_name)
|
||||
}.flatten.uniq
|
||||
|
||||
inputs.flatten.uniq
|
||||
end
|
||||
|
||||
def keep_email_and_hostnames(string)
|
||||
pattern = /\b((?:([-a-zA-Z0-9\._]+)@)?((?:[-a-zA-Z0-9\._]*)(?:\.[a-z]{2,})))\b/
|
||||
results = string.scan(pattern)
|
||||
results = string.scan(email_and_hostnames_pattern)
|
||||
|
||||
if results.present?
|
||||
results.map(&:first)
|
||||
end
|
||||
end
|
||||
|
||||
def clean_subdomains(value)
|
||||
[
|
||||
[/[-a-zA-Z0-9\._]+@([-a-zA-Z0-9]+).evolix.net/, '@\1']
|
||||
].filter_map { |item|
|
||||
if value.match?(item[0])
|
||||
value.gsub!(item[0], item[1])
|
||||
clean_subdomains_patterns.filter_map { |pattern|
|
||||
if value.match?(pattern[:search])
|
||||
value.gsub!(pattern[:search], pattern[:replace])
|
||||
else
|
||||
value
|
||||
end
|
||||
}
|
||||
end
|
||||
|
||||
def email_and_hostnames_pattern
|
||||
/\b((?:([-a-zA-Z0-9\._]+)@)?((?:[-a-zA-Z0-9\._]*)(?:\.[a-z]{2,})))\b/
|
||||
end
|
||||
|
||||
def clean_subdomains_patterns
|
||||
[{
|
||||
search: /[-a-zA-Z0-9\._]+@([-a-zA-Z0-9]+).evolix.net/,
|
||||
replace: '@\1'
|
||||
}]
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue