class Gist::Client
Constants
- API_URL
Attributes
access_token[RW]
Public Class Methods
new(access_token)
click to toggle source
# File lib/gist/client.rb, line 9 def initialize(access_token) @access_token = access_token end
Public Instance Methods
assign_conversation(assignee_id: nil, teammate_id: , id:)
click to toggle source
# File lib/gist/client.rb, line 57 def assign_conversation(assignee_id: nil, teammate_id: , id:) payload = { teammate_id: teammate_id, assignee_id: assignee_id } connect(payload: payload, method: :patch, endpoint: "conversations/#{id}/assign") end
close_conversation(teammate_id:, id:)
click to toggle source
# File lib/gist/client.rb, line 82 def close_conversation(teammate_id:, id:) payload = { teammate_id: teammate_id, state: "closed" } connect(payload: payload, method: :patch, endpoint: "conversations/#{id}") end
connect(payload: {}, params: {}, method:, endpoint:)
click to toggle source
# File lib/gist/client.rb, line 13 def connect(payload: {}, params: {}, method:, endpoint:) RestClient::Request.execute( method: method, url: "#{API_URL}/#{endpoint}", payload: payload.to_json, headers: { content_type: 'application/json', Authorization: "Bearer #{@access_token}", params: params }) do |response, request, result| case response.code when 400 [ :error, JSON.parse(response.to_str) ] when 200 [ :success, JSON.parse(response.to_str) ] else fail "Invalid response #{response.to_str} received." end end rescue RestClient::Unauthorized, RestClient::Forbidden => err JSON.parse(err.response.to_str) end
create_conversation(user_id: nil, email: nil, id:, body:, from:)
click to toggle source
# File lib/gist/client.rb, line 37 def create_conversation(user_id: nil, email: nil, id:, body:, from:) payload = { from: { id: id, user_id: user_id, email: email }, body: body } connect(payload: payload, method: :post, endpoint: "conversations") end
delete_conversation(id:)
click to toggle source
# File lib/gist/client.rb, line 53 def delete_conversation(id:) connect(method: :delete, endpoint: "conversations/#{id}") end
get_conversation(id:)
click to toggle source
# File lib/gist/client.rb, line 49 def get_conversation(id:) connect(method: :get, endpoint: "conversations/#{id}") end
list_conversations(order: "desc", status: "all", sort: "updated_at")
click to toggle source
# File lib/gist/client.rb, line 98 def list_conversations(order: "desc", status: "all", sort: "updated_at") params = { order: order, status: status, sort: sort } connect(params: params, method: :get, endpoint: "conversations") end
prioritize_conversation(priority: "priority", teammate_id:, id:)
click to toggle source
# File lib/gist/client.rb, line 90 def prioritize_conversation(priority: "priority", teammate_id:, id:) payload = { teammate_id: teammate_id, priority: priority } connect(payload: payload, method: :patch, endpoint: "conversations/#{id}/priority") end
reopen_conversation(teammate_id:, id:)
click to toggle source
# File lib/gist/client.rb, line 74 def reopen_conversation(teammate_id:, id:) payload = { teammate_id: teammate_id, state: "open" } connect(payload: payload, method: :patch, endpoint: "conversations/#{id}") end
reply_to_contact(user_id: nil, email: nil, message_type: "reply", id: nil, body:, conversation_id:)
click to toggle source
# File lib/gist/client.rb, line 111 def reply_to_contact(user_id: nil, email: nil, message_type: "reply", id: nil, body:, conversation_id:) payload = { message_type: message_type, from: { id: id, user_id: user_id, email: email, type: contact }, body: body } connect(payload: payload, method: :get, endpoint: "conversations/#{conversation_id}/messages") end
reply_to_teammate(message_type: "reply", teammate_id: , body:, conversation_id:)
click to toggle source
# File lib/gist/client.rb, line 125 def reply_to_teammate(message_type: "reply", teammate_id: , body:, conversation_id:) payload = { message_type: message_type, from: { type: "teammate", teammate_id: teammate_id }, body: body } connect(payload: payload, method: :get, endpoint: "conversations/#{conversation_id}/messages") end
retrieve_conversation_count()
click to toggle source
# File lib/gist/client.rb, line 107 def retrieve_conversation_count connect(method: :get, endpoint: "conversations/count") end
snooze_conversation(snooze_until: nil, teammate_id:, id:)
click to toggle source
# File lib/gist/client.rb, line 65 def snooze_conversation(snooze_until: nil, teammate_id:, id:) payload = { teammate_id: teammate_id, state: "snoozed", snooze_until: snooze_until } connect(payload: payload, method: :patch, endpoint: "conversations/#{id}") end