35 lines
865 B
Ruby
35 lines
865 B
Ruby
# frozen_string_literal: true
|
|
|
|
class Email < ApplicationRecord
|
|
include Elasticsearch::Model
|
|
|
|
serialize :from, Array
|
|
serialize :to, Array
|
|
serialize :delivered_to, Array
|
|
serialize :headers, Array
|
|
serialize :organisations, Array
|
|
serialize :servers, Array
|
|
serialize :issues, Array
|
|
|
|
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
|
|
|
|
paginates_per 10
|
|
|
|
def postponed?
|
|
postponed_until.present? && postponed_until > DateTime.now
|
|
end
|
|
|
|
def header_values(header_name)
|
|
headers.select { |header|
|
|
header["name"] == header_name
|
|
}.filter_map { |header|
|
|
header["value"]
|
|
}
|
|
end
|
|
end
|