Class: Apologist::Conversations::Client
- Inherits:
-
Object
- Object
- Apologist::Conversations::Client
- Defined in:
- lib/Apologist/conversations/client.rb
Instance Method Summary collapse
-
#get_conversation(request_options: {}, **params) ⇒ Apologist::Conversations::Types::GetConversationResponse
Returns a single conversation by internal UUID or team-scoped external id.
- #initialize(client:) ⇒ void constructor
-
#list_conversations(request_options: {}, **params) ⇒ Apologist::Conversations::Types::ListConversationsResponse
Returns a paginated list of conversations for the requesting agent, newest first.
-
#pause_conversation(request_options: {}, **params) ⇒ Apologist::Conversations::Types::PauseConversationResponse
Pauses the agent on a conversation identified by internal UUID or team-scoped external id.
-
#resume_conversation(request_options: {}, **params) ⇒ Apologist::Conversations::Types::ResumeConversationResponse
Resumes the agent on a conversation identified by internal UUID or team-scoped external id.
Constructor Details
#initialize(client:) ⇒ void
9 10 11 |
# File 'lib/Apologist/conversations/client.rb', line 9 def initialize(client:) @client = client end |
Instance Method Details
#get_conversation(request_options: {}, **params) ⇒ Apologist::Conversations::Types::GetConversationResponse
Returns a single conversation by internal UUID or team-scoped external id.
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/Apologist/conversations/client.rb', line 71 def get_conversation(request_options: {}, **params) params = Apologist::Internal::Types::Utils.normalize_keys(params) request = Apologist::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "conversations/#{URI.encode_uri_component(params[:id].to_s)}", request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Apologist::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Apologist::Conversations::Types::GetConversationResponse.load(response.body) else error_class = Apologist::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#list_conversations(request_options: {}, **params) ⇒ Apologist::Conversations::Types::ListConversationsResponse
Returns a paginated list of conversations for the requesting agent, newest first.
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/Apologist/conversations/client.rb', line 29 def list_conversations(request_options: {}, **params) params = Apologist::Internal::Types::Utils.normalize_keys(params) query_params = {} query_params["page"] = params[:page] if params.key?(:page) query_params["per_page"] = params[:per_page] if params.key?(:per_page) request = Apologist::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "conversations", query: query_params, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Apologist::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Apologist::Conversations::Types::ListConversationsResponse.load(response.body) else error_class = Apologist::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#pause_conversation(request_options: {}, **params) ⇒ Apologist::Conversations::Types::PauseConversationResponse
Pauses the agent on a conversation identified by internal UUID or team-scoped external id. Requires an API key.
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'lib/Apologist/conversations/client.rb', line 108 def pause_conversation(request_options: {}, **params) params = Apologist::Internal::Types::Utils.normalize_keys(params) request = Apologist::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "conversations/#{URI.encode_uri_component(params[:id].to_s)}/pause", request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Apologist::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Apologist::Conversations::Types::PauseConversationResponse.load(response.body) else error_class = Apologist::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#resume_conversation(request_options: {}, **params) ⇒ Apologist::Conversations::Types::ResumeConversationResponse
Resumes the agent on a conversation identified by internal UUID or team-scoped external id. Requires an API key.
145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
# File 'lib/Apologist/conversations/client.rb', line 145 def resume_conversation(request_options: {}, **params) params = Apologist::Internal::Types::Utils.normalize_keys(params) request = Apologist::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "conversations/#{URI.encode_uri_component(params[:id].to_s)}/resume", request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Apologist::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Apologist::Conversations::Types::ResumeConversationResponse.load(response.body) else error_class = Apologist::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |