Class: Twi::Conversation
Overview
The representation of a (classic) group conversation.
Instance Method Summary
collapse
Methods inherited from Resource
#initialize
Constructor Details
This class inherits a constructor from Twi::Resource
Instance Method Details
#close ⇒ Object
22
23
24
|
# File 'lib/twi/conversation.rb', line 22
def close
conversation.update state: :closed
end
|
#create_message(content:, image_ids: []) ⇒ Object
38
39
40
|
# File 'lib/twi/conversation.rb', line 38
def create_message(content:, image_ids: [])
conversation.messages.create **message_params_for(content, image_ids)
end
|
#create_with(participants:) ⇒ Object
5
6
7
8
9
10
11
12
13
14
15
16
|
# File 'lib/twi/conversation.rb', line 5
def create_with(participants:)
params = create_params_for participants
conversation = conversation_service.conversation_with_participants.create **params
@params = { id: conversation.sid, status: conversation.state }
rescue Twilio::REST::RestError => error
case error.code
when 50438 then raise ExistingConversationError.new(code: error.code, message: error.error_message)
when 50214 then raise TooManyConversationsError.new(code: error.code, message: error.error_message)
else raise
end
end
|
#delete ⇒ Object
26
27
28
29
30
|
# File 'lib/twi/conversation.rb', line 26
def delete
conversation.delete
rescue Twilio::REST::RestError => error
raise unless error.code == 20404
end
|
#id ⇒ Object
56
|
# File 'lib/twi/conversation.rb', line 56
def id = @params[:id]
|
#rename(friendly_name) ⇒ Object
18
19
20
|
# File 'lib/twi/conversation.rb', line 18
def rename(friendly_name)
conversation.update friendly_name: friendly_name
end
|
#status ⇒ Object
58
|
# File 'lib/twi/conversation.rb', line 58
def status = @params[:status]
|
#upload(file) ⇒ Object
TODO: Move into Medium -- this method doesn't use anything from this class
43
44
45
46
47
48
49
50
51
52
53
54
|
# File 'lib/twi/conversation.rb', line 43
def upload(file)
uri = URI "https://mcs.us1.twilio.com/v1/Services/#{Twi.lio.conversation_sid}/Media"
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
= { 'Content-Type' => file.content_type, 'Content-Size' => file.byte_size.to_s }
request = Net::HTTP::Post.new uri.request_uri,
request.basic_auth Twi.lio.api_key, Twi.lio.secret
request.body = file.download
response = http.request request
JSON(response.body)['sid']
end
|
#url ⇒ Object
32
33
34
35
36
|
# File 'lib/twi/conversation.rb', line 32
def url
url = "/console/conversations/services/#{Twi.lio.conversation_sid}/conversations/#{id}"
query = "frameUrl=#{CGI.escape url}"
"https://console.twilio.com/us1/develop/conversations/manage/services?#{query}"
end
|