Class: Voicemail::MailboxPlayMessageController

Inherits:
ApplicationController show all
Defined in:
lib/voicemail/call_controllers/mailbox_play_message_controller.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from ApplicationController

#main_menu

Constructor Details

#initialize(call, metadata = {}) ⇒ MailboxPlayMessageController

Returns a new instance of MailboxPlayMessageController.



6
7
8
9
# File 'lib/voicemail/call_controllers/mailbox_play_message_controller.rb', line 6

def initialize(call, ={})
  @new_or_saved = [:new_or_saved] || :new
  super call, 
end

Instance Attribute Details

#new_or_savedObject

Returns the value of attribute new_or_saved.



4
5
6
# File 'lib/voicemail/call_controllers/mailbox_play_message_controller.rb', line 4

def new_or_saved
  @new_or_saved
end

Instance Method Details

#archive_or_unarchive_messageObject



65
66
67
68
69
70
71
# File 'lib/voicemail/call_controllers/mailbox_play_message_controller.rb', line 65

def archive_or_unarchive_message
  if new_or_saved == :new
    storage.archive_message mailbox[:id], current_message[:id]
  else
    storage.unarchive_message mailbox[:id], current_message[:id]
  end
end

#current_messageObject



78
79
80
# File 'lib/voicemail/call_controllers/mailbox_play_message_controller.rb', line 78

def current_message
  @message
end

#delete_messageObject



73
74
75
76
# File 'lib/voicemail/call_controllers/mailbox_play_message_controller.rb', line 73

def delete_message
  storage.delete_message mailbox[:id], current_message[:id]
  play config.messages.message_deleted
end

#intro_messageObject



45
46
47
# File 'lib/voicemail/call_controllers/mailbox_play_message_controller.rb', line 45

def intro_message
  IntroMessageCreator.new(current_message).intro_message
end

#load_messageObject

Raises:

  • (ArgumentError)


82
83
84
85
# File 'lib/voicemail/call_controllers/mailbox_play_message_controller.rb', line 82

def load_message
  @message = [:message] || nil
  raise ArgumentError, "MailboxPlayMessageController needs a valid message passed to it" unless @message
end

#message_uriObject



87
88
89
# File 'lib/voicemail/call_controllers/mailbox_play_message_controller.rb', line 87

def message_uri
  current_message[:uri]
end

#play_messageObject



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
# File 'lib/voicemail/call_controllers/mailbox_play_message_controller.rb', line 16

def play_message
  menu intro_message, message_uri, play_message_menu, timeout: config.menu_timeout, tries: config.menu_tries do
    match 1 do
      archive_or_unarchive_message
    end

    match 5 do
      delete_message
    end

    match(7) { rewind_message }
    match(8) { skip_message }
    match(9) { main_menu }

    timeout do
      play config.mailbox.menu_timeout_message
    end

    invalid do
      play config.mailbox.menu_invalid_message
    end

    failure do
      play config.mailbox.menu_failure_message
      main_menu
    end
  end
end

#play_message_menuObject



49
50
51
52
53
54
55
# File 'lib/voicemail/call_controllers/mailbox_play_message_controller.rb', line 49

def play_message_menu
  if new_or_saved == :new
    config.messages.menu_new
  else
    config.messages.menu_saved
  end
end

#rewind_messageObject



57
58
59
# File 'lib/voicemail/call_controllers/mailbox_play_message_controller.rb', line 57

def rewind_message
  play_message
end

#runObject



11
12
13
14
# File 'lib/voicemail/call_controllers/mailbox_play_message_controller.rb', line 11

def run
  load_message
  play_message
end

#skip_messageObject



61
62
63
# File 'lib/voicemail/call_controllers/mailbox_play_message_controller.rb', line 61

def skip_message
  # This method intentionally left blank
end