summaryrefslogtreecommitdiff
path: root/app/models/voicemail_account.rb
blob: 8ec181f800d1c854dd139012a89bc9e5e4e99dea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
class VoicemailAccount < ActiveRecord::Base
  attr_accessible :uuid, :name, :active, :gs_node_id, :voicemail_accountable_type, :voicemail_accountable_id

  belongs_to :voicemail_accountable, :polymorphic => true
  has_many :voicemail_settings
  has_many :voicemail_messages, :foreign_key => 'username', :primary_key => 'name'

  validates :name,
            :presence => true,
            :uniqueness => true

  validates :voicemail_accountable_id,
            :presence => true

  validates :voicemail_accountable_type,
            :presence => true

  def to_s
    "#{voicemail_accountable.to_s}: #{name}"
  end

  def notify_to
    send_notification = nil
    if self.voicemail_settings.where(:name => 'notify', :value => true).first 
      send_notification = true
    elsif self.voicemail_settings.where(:name => 'notify', :value => false).first 
      send_notification = false
    end

    if send_notification == nil
      send_notification = GsParameter.get('notify', 'voicemail', 'settings')
    end

    if !send_notification
      return send_notification
    end

    email = self.voicemail_settings.where(:name => 'email').first.try(:value) 

    if email.blank?
      if self.voicemail_accountable.class == User
        email = self.voicemail_accountable.email
      end
    end

    return email
  end


  def notification_setting(name)
    setting = nil
    if self.voicemail_settings.where(:name => name, :value => true).first 
      setting = true
    elsif self.voicemail_settings.where(:name => name, :value => false).first 
      setting = false
    end

    if setting == nil
      setting = GsParameter.get(name, 'voicemail', 'settings')
    end

    return setting
  end
end