module Twilio module TwiML # Messaging TwiML Response class MessagingResponse < TwiML # Create a new <Response> def initialize super() self.name = 'Response' yield(self) if block_given? end # Create a <Message> element # # == Parameters: # body:: body of the message # to:: number to send to # from_:: number to send from # method:: action HTTP method # action:: action URL # status_callback:: callback URL # keyword_args:: additional attributes # # == Returns: # A <Response> element with a <Message> child element def message(body: nil, to: nil, from: nil, method: nil, action: nil, status_callback: nil, **keyword_args) message = Message.new( body: body, to: to, from: from, method: method, action: action, status_callback: status_callback, **keyword_args ) yield(message) if block_given? append(message) end # Create an <Redirect> element # # == Parameters: # url:: URL to redirect to # method:: HTTP method # keyword_args:: attributes # # == Returns: # A <Response> element with an <Redirect> child element def redirect(url, method: nil, **keyword_args) append(Redirect.new(url, method: method, **keyword_args)) end end # <Message> element class Message < TwiML # Create a <Message> element # # == Parameters: # body:: message body # keyword_args:: additional attributes # # == Returns: # A <Message> element def initialize(body: nil, **keyword_args) super(**keyword_args) @value = body unless body.nil? yield(self) if block_given? end # Create a <Body> element # # == Parameters: # body:: body of message # keyword_args:: additional attributes # # == Returns: # A <Message> element with a <Body> child element def body(body) append(Body.new(body)) end # Create a <Media> element # # == Parameters: # body:: body of message # keyword_args:: additional attributes # # == Returns: # A <Message> element with a <Media> child element def media(url) append(Media.new(url)) end end # <Body> element class Body < TwiML # Create a <Body> element # # == Parameters: # body:: message body # # == Returns: # A <Body> element def initialize(body) super() @value = body end end # <Media> element class Media < TwiML # Create a <Media> element # # == Parameters: # url:: media URL location # # == Returns: # A <Media> element def initialize(url) super() @value = url end end # <Redirect> element class Redirect < TwiML # Create a <Redirect> element # # == Parameters: # url:: redirect URL location # keyword_args:: additional attributes # # == Returns: # A <Redirect> element def initialize(url, **keyword_args) super(**keyword_args) @value = url end end end end