Class: Voicemail::MailboxSetPinController

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

Instance Method Summary collapse

Methods inherited from ApplicationController

#main_menu

Instance Method Details

#runObject



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

def run
  section_menu
end

#section_menuObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/voicemail/call_controllers/mailbox_set_pin_controller.rb', line 7

def section_menu
  menu config.set_pin.menu,
     timeout: config.menu_timeout, tries: config.menu_tries do
    match(1) { set_pin }
    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

#set_pinObject



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/voicemail/call_controllers/mailbox_set_pin_controller.rb', line 28

def set_pin
  pin = ask config.set_pin.prompt, terminator: "#", timeout: 5
  repeat_pin = ask config.set_pin.repeat_prompt, terminator: "#", timeout: 5

  if pin.to_s.nil? || pin.to_s.size < config.set_pin.pin_minimum_digits
    play config.set_pin.pin_error
    set_pin
  elsif pin.to_s != repeat_pin.to_s
    play config.set_pin.match_error
    set_pin
  else
    play config.set_pin.change_ok
    storage.change_pin_for_mailbox mailbox[:id], pin.to_s
    main_menu
  end
end