2021-01-20 13:45:05 +01:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2021-01-30 18:22:00 +01:00
|
|
|
class Email < ApplicationRecord
|
|
|
|
include Elasticsearch::Model
|
2020-12-27 11:45:20 +01:00
|
|
|
|
2021-01-30 18:22:00 +01:00
|
|
|
serialize :from, Array
|
|
|
|
serialize :to, Array
|
|
|
|
serialize :delivered_to, Array
|
|
|
|
serialize :headers, Array
|
|
|
|
serialize :organisations, Array
|
|
|
|
serialize :servers, Array
|
|
|
|
serialize :issues, Array
|
2020-12-27 11:45:20 +01:00
|
|
|
|
2020-12-31 15:32:07 +01:00
|
|
|
validates :message_id, presence: true
|
|
|
|
validates :subject, presence: true
|
|
|
|
validates :date, presence: true
|
|
|
|
validates :delivered_to, presence: true
|
|
|
|
validates :from, presence: true
|
|
|
|
validates :headers, presence: true
|
2020-12-28 00:51:22 +01:00
|
|
|
|
2021-01-26 16:01:09 +01:00
|
|
|
|
2021-01-26 16:00:49 +01:00
|
|
|
def postponed?
|
|
|
|
postponed_until.present? && postponed_until > DateTime.now
|
|
|
|
end
|
|
|
|
|
2021-01-20 13:46:45 +01:00
|
|
|
def header_values(header_name)
|
|
|
|
headers.select { |header|
|
|
|
|
header["name"] == header_name
|
|
|
|
}.filter_map { |header|
|
|
|
|
header["value"]
|
|
|
|
}
|
|
|
|
end
|
2020-10-28 23:53:42 +01:00
|
|
|
end
|