Class: Lita::Handlers::Zendesk
- Inherits:
-
Handler
- Object
- Handler
- Lita::Handlers::Zendesk
- Defined in:
- lib/lita/handlers/zendesk.rb
Constant Summary collapse
- API_VERSION_URL_PATH =
'api/v2'- WEB_TICKETS_URL_PATH =
'tickets'- QUERY_TICKETS_ALL =
'type:ticket'- QUERY_TICKETS_ESCALATED =
'type:ticket tags:escalated status:open status:pending'- QUERY_TICKETS_HOLD =
'type:ticket status:hold'- QUERY_TICKETS_OPEN =
'type:ticket status:open'- QUERY_TICKETS_NEW =
'type:ticket status:new'- QUERY_TICKETS_PENDING =
'type:ticket status:pending'- QUERY_TICKETS_UNSOLVED =
'type:ticket status<solved'- QUERY_USERS =
'users'
Instance Method Summary collapse
- #api_version_url ⇒ Object
- #base_url ⇒ Object
- #client ⇒ Object
- #escalated_tickets(response) ⇒ Object
- #escalated_tickets_list(response) ⇒ Object
- #new_tickets(response) ⇒ Object
- #new_tickets_list(response) ⇒ Object
- #onhold_tickets(response) ⇒ Object
- #onhold_tickets_list(response) ⇒ Object
- #open_tickets(response) ⇒ Object
- #open_tickets_list(response) ⇒ Object
- #pending_tickets(response) ⇒ Object
- #pending_tickets_list(response) ⇒ Object
- #search_tickets(response) ⇒ Object
- #ticket_details_with_comments(response) ⇒ Object
- #total_tickets(response) ⇒ Object
- #total_tickets_list(response) ⇒ Object
- #unsolved_tickets(response) ⇒ Object
- #unsolved_tickets_list(response) ⇒ Object
- #web_tickets_url ⇒ Object
- #zd_instance_info(response) ⇒ Object
Instance Method Details
#api_version_url ⇒ Object
40 41 42 |
# File 'lib/lita/handlers/zendesk.rb', line 40 def api_version_url uri_join base_url, API_VERSION_URL_PATH end |
#base_url ⇒ Object
36 37 38 |
# File 'lib/lita/handlers/zendesk.rb', line 36 def base_url "https://#{config.subdomain}.zendesk.com" end |
#client ⇒ Object
25 26 27 28 29 30 31 32 33 34 |
# File 'lib/lita/handlers/zendesk.rb', line 25 def client return @_client if @_client Lita.logger.info "#{logger_prefix}Connecting Zendesk Client to #{api_version_url}" @_client = ZendeskAPI::Client.new do |client| client.url = api_version_url.to_s client.username = config.username || config.user client.token = config.token client.password = config.password end end |
#escalated_tickets(response) ⇒ Object
83 84 85 |
# File 'lib/lita/handlers/zendesk.rb', line 83 def escalated_tickets(response) ticket_count response, QUERY_TICKETS_ESCALATED, 'escalated' end |
#escalated_tickets_list(response) ⇒ Object
120 121 122 |
# File 'lib/lita/handlers/zendesk.rb', line 120 def escalated_tickets_list(response) ticket_list response, QUERY_TICKETS_ESCALATED, 'escalated' end |
#new_tickets(response) ⇒ Object
78 79 80 |
# File 'lib/lita/handlers/zendesk.rb', line 78 def new_tickets(response) ticket_count response, QUERY_TICKETS_NEW, 'new' end |
#new_tickets_list(response) ⇒ Object
115 116 117 |
# File 'lib/lita/handlers/zendesk.rb', line 115 def new_tickets_list(response) ticket_list response, QUERY_TICKETS_NEW, 'new' end |
#onhold_tickets(response) ⇒ Object
93 94 95 |
# File 'lib/lita/handlers/zendesk.rb', line 93 def onhold_tickets(response) ticket_count response, QUERY_TICKETS_HOLD, 'on hold' end |
#onhold_tickets_list(response) ⇒ Object
130 131 132 |
# File 'lib/lita/handlers/zendesk.rb', line 130 def onhold_tickets_list(response) ticket_list response, QUERY_TICKETS_HOLD, 'on hold' end |
#open_tickets(response) ⇒ Object
88 89 90 |
# File 'lib/lita/handlers/zendesk.rb', line 88 def open_tickets(response) ticket_count response, QUERY_TICKETS_OPEN, 'open' end |
#open_tickets_list(response) ⇒ Object
125 126 127 |
# File 'lib/lita/handlers/zendesk.rb', line 125 def open_tickets_list(response) ticket_list response, QUERY_TICKETS_OPEN, 'open' end |
#pending_tickets(response) ⇒ Object
73 74 75 |
# File 'lib/lita/handlers/zendesk.rb', line 73 def pending_tickets(response) ticket_count response, QUERY_TICKETS_PENDING, 'pending' end |
#pending_tickets_list(response) ⇒ Object
110 111 112 |
# File 'lib/lita/handlers/zendesk.rb', line 110 def pending_tickets_list(response) ticket_list response, QUERY_TICKETS_PENDING, 'pending' end |
#search_tickets(response) ⇒ Object
56 57 58 |
# File 'lib/lita/handlers/zendesk.rb', line 56 def search_tickets(response) ticket_search response, response.matches[0][0] end |
#ticket_details_with_comments(response) ⇒ Object
137 138 139 140 141 142 143 144 145 146 147 |
# File 'lib/lita/handlers/zendesk.rb', line 137 def ticket_details_with_comments(response) Lita.logger.info "#{logger_prefix}Processing Zendesk Ticket Details" ticket_id = response.matches[0][0].to_i begin ticket = client.ticket.find!(id: ticket_id) response.reply get_text_for_ticket_with_comments(ticket) rescue => e Lita.logger.warn "#{logger_prefix}#{e}" response.reply "Error processing ticket #{ticket_id}" end end |
#total_tickets(response) ⇒ Object
68 69 70 |
# File 'lib/lita/handlers/zendesk.rb', line 68 def total_tickets(response) ticket_count response, QUERY_TICKETS_ALL, 'total' end |
#total_tickets_list(response) ⇒ Object
105 106 107 |
# File 'lib/lita/handlers/zendesk.rb', line 105 def total_tickets_list(response) ticket_list response, QUERY_TICKETS_ALL, 'total' end |
#unsolved_tickets(response) ⇒ Object
63 64 65 |
# File 'lib/lita/handlers/zendesk.rb', line 63 def unsolved_tickets(response) ticket_count response, QUERY_TICKETS_UNSOLVED, 'unsolved' end |
#unsolved_tickets_list(response) ⇒ Object
100 101 102 |
# File 'lib/lita/handlers/zendesk.rb', line 100 def unsolved_tickets_list(response) ticket_list response, QUERY_TICKETS_UNSOLVED, 'unsolved' end |
#web_tickets_url ⇒ Object
44 45 46 |
# File 'lib/lita/handlers/zendesk.rb', line 44 def web_tickets_url uri_join base_url, WEB_TICKETS_URL_PATH end |
#zd_instance_info(response) ⇒ Object
51 52 53 |
# File 'lib/lita/handlers/zendesk.rb', line 51 def zd_instance_info(response) response.reply "Using Zendesk instance at: #{base_url}" end |