22# frozen_string_literal: true
33module Vonage
44 class Voice ::Actions ::Talk
5- attr_accessor :text , :bargeIn , :loop , :level , :language , :style , :premium
5+ attr_accessor :text , :bargeIn , :loop , :level , :language , :style , :premium , :provider , :providerOptions
66
77 def initialize ( attributes = { } )
88 @text = attributes . fetch ( :text )
@@ -12,6 +12,8 @@ def initialize(attributes= {})
1212 @language = attributes . fetch ( :language , nil )
1313 @style = attributes . fetch ( :style , nil )
1414 @premium = attributes . fetch ( :premium , nil )
15+ @provider = attributes . fetch ( :provider , nil )
16+ @providerOptions = attributes . fetch ( :providerOptions , nil )
1517
1618 after_initialize!
1719 end
@@ -36,6 +38,10 @@ def after_initialize!
3638 if self . premium || self . premium == false
3739 verify_premium
3840 end
41+
42+ if self . provider
43+ verify_provider
44+ end
3945 end
4046
4147 def verify_barge_in
@@ -58,6 +64,13 @@ def verify_premium
5864 raise ClientError . new ( "Expected 'premium' value to be a Boolean" ) unless self . premium == true || self . premium == false
5965 end
6066
67+ def verify_provider
68+ valid_providers = [ 'google' ]
69+
70+ raise ClientError . new ( "Invalid 'provider' value, must be one of: #{ valid_providers . join ( ', ' ) } " ) unless valid_providers . include? ( self . provider )
71+ raise ClientError . new ( "The `providerOptions` parameter is required when specifying a `provider`" ) unless self . providerOptions
72+ end
73+
6174 def action
6275 create_talk! ( self )
6376 end
@@ -75,7 +88,9 @@ def create_talk!(builder)
7588 ncco [ 0 ] . merge! ( level : builder . level ) if builder . level
7689 ncco [ 0 ] . merge! ( language : builder . language ) if builder . language
7790 ncco [ 0 ] . merge! ( style : builder . style ) if builder . style
78- ncco [ 0 ] . merge! ( premium : builder . premium ) if ( builder . bargeIn || builder . bargeIn == false )
91+ ncco [ 0 ] . merge! ( premium : builder . premium ) if ( builder . premium || builder . premium == false )
92+ ncco [ 0 ] . merge! ( provider : builder . provider ) if builder . provider
93+ ncco [ 0 ] . merge! ( providerOptions : builder . providerOptions ) if builder . providerOptions
7994
8095 ncco
8196 end
0 commit comments