Class: WcoEmail::EmailFilter

Inherits:
Object
  • Object
show all
Includes:
Mongoid::Document, Mongoid::Paranoia, Mongoid::Timestamps
Defined in:
app/models/wco_email/email_filter.rb

Constant Summary collapse

PAGE_PARAM_NAME =
:filters_page
STATUS_ACTIVE =
'active'
STATUS_INACTIVE =
'inactive'
KIND_AUTORESPOND_TMPL =
Deprecated.

2026-04-02, use email_filter_action::

'autorespond-template'
KIND_AUTORESPOND_EACT =
'autorespond-email-action'
KIND_REMOVE_TAG =
'remove-tag'
KIND_ADD_TAG =
'add-tag'
KIND_DESTROY_SCHS =
'destroy-schs'
KIND_OAT =
'office-action'
KIND_AUTORESPOND =
Deprecated.
'autorespond'
KIND_DELETE =

@deprecated, DO NOT USE!

'delete'
KIND_SKIP_INBOX =

@deprecated, use add-tag

'skip-inbox'
KINDS =

@deprecated, use remove-tag

[ nil, KIND_OAT, KIND_AUTORESPOND_TMPL, KIND_AUTORESPOND_EACT, KIND_ADD_TAG, KIND_REMOVE_TAG, KIND_DESTROY_SCHS ]

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.activeObject



15
# File 'app/models/wco_email/email_filter.rb', line 15

def self.active; where( :status.in => [ nil, STATUS_ACTIVE ] ); end

Instance Method Details

#email_templateObject

@deprecated, use email_filter.email_action.aject



103
# File 'app/models/wco_email/email_filter.rb', line 103

belongs_to :email_template,         class_name: '::WcoEmail::EmailTemplate',        optional: true

#from_regexObject

@deprecated, use email_filter_conditions



75
# File 'app/models/wco_email/email_filter.rb', line 75

field :from_regex

#kindObject

@deprecated, use filter.action.aject.kind 2026-04-02



100
# File 'app/models/wco_email/email_filter.rb', line 100

field :kind

#office_email_filtersObject

'wco_email_email_filters'



6
# File 'app/models/wco_email/email_filter.rb', line 6

store_in collection: 'office_email_filters'

#to_sObject



43
44
45
# File 'app/models/wco_email/email_filter.rb', line 43

def to_s
  "EmailFilter: #{from_regex} #{from_exact} #{conditions.map { |c| c.to_s }.join }"
end

#to_s_fullObject



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'app/models/wco_email/email_filter.rb', line 46

def to_s_full
  attrs = ''
  if from_regex || from_exact
    attrs = "#{attrs} from=#{from_regex}#{from_exact}"
  end

  out =<<-AOL
<EmailFilter#{attrs} >
#{conditions.map { |c| c.to_s_full( indent: 2) }.join }
#{skip_conditions.map { |c| c.to_s_full( indent: 2) }.join }
#{actions.map { |c| c.to_s_full( indent: 2) }.join }
</EmailFilter>
AOL
  while out.match(/\n\n/) do
    out = out.gsub(/\n\n/, "\n")
  end
  out
end

#validate_actionsObject



20
21
22
23
24
# File 'app/models/wco_email/email_filter.rb', line 20

def validate_actions
  if actions.length == 0
    errors.add(:actions, 'must be present')
  end
end

#validate_conditionsObject



29
30
31
32
33
# File 'app/models/wco_email/email_filter.rb', line 29

def validate_conditions
  if conditions.length == 0
    errors.add(:condition, 'must be present')
  end
end