Class: Voicemail::MailboxSetGreetingController

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from ApplicationController

#main_menu

Instance Attribute Details

#temp_recordingObject

Returns the value of attribute temp_recording.



3
4
5
# File 'lib/voicemail/mailbox_set_greeting_controller.rb', line 3

def temp_recording
  @temp_recording
end

Instance Method Details

#listen_to_current_greetingObject



31
32
33
34
# File 'lib/voicemail/mailbox_set_greeting_controller.rb', line 31

def listen_to_current_greeting
  play mailbox[:greeting_message] || config.set_greeting.no_personal_greeting
  section_menu
end

#record_greetingObject



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
65
66
67
68
# File 'lib/voicemail/mailbox_set_greeting_controller.rb', line 36

def record_greeting
  play config.set_greeting.before_record
  record_comp = record config.set_greeting.recording.to_hash.merge(interruptible: true, max_duration: 30_000)
  @temp_recording = record_comp.complete_event.recording.uri.gsub(/file:\/\//, '').gsub(/\.wav/, '')
  play @temp_recording

  menu config.set_greeting.after_record,
     timeout: config.menu_timeout, tries: config.menu_tries do
    match(1) { save_greeting }
    match 2 do
      @temp_recording = nil
      record_greeting
    end

    match 9 do
      @temp_recording = nil
      section_menu
    end

    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
      hangup
    end
  end
end

#runObject



5
6
7
# File 'lib/voicemail/mailbox_set_greeting_controller.rb', line 5

def run
  section_menu
end

#save_greetingObject



70
71
72
73
# File 'lib/voicemail/mailbox_set_greeting_controller.rb', line 70

def save_greeting
  storage.save_greeting_for_mailbox mailbox[:id], temp_recording
  main_menu
end

#section_menuObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/voicemail/mailbox_set_greeting_controller.rb', line 9

def section_menu
  menu config.set_greeting.prompt,
     timeout: config.menu_timeout, tries: config.menu_tries do
    match(1) { listen_to_current_greeting }
    match(2) { record_greeting }
    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
      hangup
    end
  end
end