Sha256: af067c5d4e167469c9cc7d46351a2a3ad6ec7ff108a0f27a8df7459a2e3fd967

Contents?: true

Size: 1.57 KB

Versions: 1

Compression:

Stored size: 1.57 KB

Contents

module Voicemail
  class MailboxPlayMessageController < ApplicationController

    def run
      load_message
      intro_message
      play_message
    end

    def play_message
      menu current_message[:uri].gsub(/\.wav/, ''), config.messages.menu,
         timeout: config.menu_timeout, tries: config.menu_tries do
        match 1 do
          archive_message
        end

        match 5 do
          delete_message
        end

        match(7) { rewind_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
          hangup
        end
      end
    end

    def intro_message
      play config.messages.message_received_on
      play_time current_message[:received], format: config.datetime_format
      play config.messages.from
      from_digits = current_message[:from].scan(/\d/).join
      execute "SayDigits", from_digits unless from_digits.empty?
      # say_characters '1234'
    end

    def rewind_message
      play_message
    end

    def archive_message
      storage.archive_message mailbox[:id], current_message[:id]
    end

    def delete_message
      storage.delete_message mailbox[:id], current_message[:id]
    end

    def current_message
      @message
    end

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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
voicemail-0.1.0 lib/voicemail/mailbox_play_message_controller.rb