lita-zendesk 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.codeclimate.yml +16 -0
- data/.gitignore +18 -0
- data/.simplecov +6 -0
- data/.travis.yml +14 -0
- data/lib/lita/handlers/zendesk.rb +29 -19
- data/lita-zendesk.gemspec +29 -0
- data/locales/en.yml +4 -0
- metadata +48 -3
- data/Gemfile.lock +0 -99
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9c98df925470543243c15a83d4fdcfb992700608
|
4
|
+
data.tar.gz: 5e6e5433eb861b713218f3d484baa41850bd0848
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e63a6e6268461a45dc92601236f85db370df275e52fde5c1f418f3513835598e7a73052d81900555c663b26cf4db412b43460b43ce30e8062db8c595054378a5
|
7
|
+
data.tar.gz: 76230b57b6a39cb7a72c3f911a4fda96bb3040eba1589d3d5911d3d829f266c825568f410d1d4971d3c8a91ea7cbcd21f7c6df1115d483f1ce449b619dde403b
|
data/.codeclimate.yml
ADDED
data/.gitignore
ADDED
data/.simplecov
ADDED
data/.travis.yml
ADDED
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'base64'
|
2
2
|
require 'faraday'
|
3
3
|
require 'faraday_middleware'
|
4
|
-
require 'pp'
|
5
4
|
|
6
5
|
module Lita
|
7
6
|
module Handlers
|
@@ -25,9 +24,9 @@ module Lita
|
|
25
24
|
config :password, type: String, default: ''
|
26
25
|
|
27
26
|
def init
|
28
|
-
@base_url =
|
29
|
-
@version_url = "
|
30
|
-
@tickets_url = "
|
27
|
+
@base_url = base_url
|
28
|
+
@version_url = "#{@base_url}/#{VERSION_URL}"
|
29
|
+
@tickets_url = "#{@base_url}/tickets"
|
31
30
|
|
32
31
|
if config.auth_type == 'password'
|
33
32
|
@conn = Faraday.new(url: @version_url) do |faraday|
|
@@ -46,12 +45,16 @@ module Lita
|
|
46
45
|
end
|
47
46
|
end
|
48
47
|
|
48
|
+
def base_url
|
49
|
+
"https://#{config.subdomain.to_s}.zendesk.com"
|
50
|
+
end
|
51
|
+
|
49
52
|
def basic_credentials
|
50
53
|
Base64.encode64("#{config.user}:#{config.password}").gsub(/\s/,'')
|
51
54
|
end
|
52
55
|
|
53
56
|
def zendesk_request(url)
|
54
|
-
|
57
|
+
init unless @conn
|
55
58
|
if url.index('http') != 0
|
56
59
|
url = "#{@version_url}/#{url}"
|
57
60
|
end
|
@@ -67,7 +70,7 @@ module Lita
|
|
67
70
|
end
|
68
71
|
|
69
72
|
def ticket_list(response, url, ticket_type = '')
|
70
|
-
|
73
|
+
res = zendesk_request url
|
71
74
|
tickets = res.body['results']
|
72
75
|
tickets.each do |ticket|
|
73
76
|
response.reply "Ticket #{ticket['id']} is #{ticket['status']}: #{@tickets_url}/#{ticket['id']} - #{ticket['subject']}"
|
@@ -83,6 +86,13 @@ module Lita
|
|
83
86
|
count == 1 ? 'ticket' : 'tickets'
|
84
87
|
end
|
85
88
|
|
89
|
+
# Info
|
90
|
+
|
91
|
+
route(/^(?:zd|zendesk)\s+connection\s*$/, :zd_instance_info, command: true, help: { 'zd connection' => 'returns information on the Zendesk connection' })
|
92
|
+
def zd_instance_info(response)
|
93
|
+
response.reply "Using Zendesk instance at: #{base_url}"
|
94
|
+
end
|
95
|
+
|
86
96
|
# Ticket Counts
|
87
97
|
|
88
98
|
route(/^(?:zd|zendesk)(\s+unsolved)?\s+tickets?\s*$/, :unsolved_tickets, command: true, help: { 'zd tickets' => 'returns the total count of all unsolved tickets' })
|
@@ -124,7 +134,7 @@ module Lita
|
|
124
134
|
|
125
135
|
route(/^(?:zd|zendesk)\s+list(\s+unsolved)?\s+tickets?\s*$/, :unsolved_tickets_list, command: true, help: { 'zd list tickets' => 'returns a list of unsolved tickets' })
|
126
136
|
def unsolved_tickets_list(response)
|
127
|
-
|
137
|
+
ticket_list response, QUERY_TICKETS_UNSOLVED, 'unsolved'
|
128
138
|
end
|
129
139
|
|
130
140
|
route(/^(?:zd|zendesk)\s+list\s+(all|total)\s+tickets?\s*$/, :total_tickets_list, command: true, help: { 'zd list all tickets' => 'returns a list of all tickets' })
|
@@ -161,18 +171,18 @@ module Lita
|
|
161
171
|
|
162
172
|
route(/^(?:zd|zendesk)\s+ticket\s+(\d+)\s*$/, :ticket_details, command: true, help: { 'zd ticket <ID>' => 'returns information about the specified ticket' })
|
163
173
|
def ticket_details(response)
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
174
|
+
ticket_id = response.matches[0][0]
|
175
|
+
url = "#{QUERY_TICKETS_ALL}/#{ticket_id}.json"
|
176
|
+
res = zendesk_request url
|
177
|
+
data = res.body
|
178
|
+
|
179
|
+
message = "Ticket #{data['ticket']['id']}: #{@tickets_url}/#{data['ticket']['id']}"
|
180
|
+
message += "\nStatus: #{data['ticket']['status'].upcase}"
|
181
|
+
message += "\nUpdated: " + data['ticket']['updated_at']
|
182
|
+
message += "\nAdded: #{data['ticket']['created_at']}"
|
183
|
+
message += "\nSubject: #{data['ticket']['subject']}"
|
184
|
+
message += "\nDescription:\n-----\n#{data['ticket']['description']}\n-----\n"
|
185
|
+
response.reply message
|
176
186
|
end
|
177
187
|
end
|
178
188
|
|
@@ -0,0 +1,29 @@
|
|
1
|
+
Gem::Specification.new do |spec|
|
2
|
+
spec.name = 'lita-zendesk'
|
3
|
+
spec.date = '2016-08-31'
|
4
|
+
spec.version = '0.0.4'
|
5
|
+
spec.authors = ['John Wang']
|
6
|
+
spec.email = ["johncwang@gmail.com"]
|
7
|
+
spec.description = %q{A Zendesk handler for Lita.}
|
8
|
+
spec.summary = %q{A Zendesk handler for the Lita chatbot.}
|
9
|
+
spec.homepage = 'https://github.com/grokify/lita-zendesk'
|
10
|
+
spec.license = 'MIT'
|
11
|
+
spec.metadata = { 'lita_plugin_type' => 'handler' }
|
12
|
+
|
13
|
+
spec.files = `git ls-files`.split($/)
|
14
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
15
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
16
|
+
spec.require_paths = ['lib']
|
17
|
+
|
18
|
+
spec.add_runtime_dependency 'faraday', '~> 0.9', '>= 0.9'
|
19
|
+
spec.add_runtime_dependency 'faraday_middleware', '~> 0', '>= 0'
|
20
|
+
spec.add_runtime_dependency 'lita', '>= 4.4.3'
|
21
|
+
|
22
|
+
spec.add_development_dependency 'bundler', '~> 1.3'
|
23
|
+
spec.add_development_dependency 'pry-byebug'
|
24
|
+
spec.add_development_dependency 'rack-test'
|
25
|
+
spec.add_development_dependency 'rake'
|
26
|
+
spec.add_development_dependency 'rspec', '>= 3.0.0'
|
27
|
+
spec.add_development_dependency 'simplecov', '>= 0.9.2'
|
28
|
+
spec.add_development_dependency 'coveralls'
|
29
|
+
end
|
data/locales/en.yml
ADDED
metadata
CHANGED
@@ -1,15 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lita-zendesk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Wang
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: faraday
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.9'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0.9'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0.9'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0.9'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: faraday_middleware
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0'
|
43
|
+
type: :runtime
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '0'
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '0'
|
13
53
|
- !ruby/object:Gem::Dependency
|
14
54
|
name: lita
|
15
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -129,14 +169,19 @@ executables: []
|
|
129
169
|
extensions: []
|
130
170
|
extra_rdoc_files: []
|
131
171
|
files:
|
172
|
+
- ".codeclimate.yml"
|
173
|
+
- ".gitignore"
|
174
|
+
- ".simplecov"
|
175
|
+
- ".travis.yml"
|
132
176
|
- CHANGELOG.md
|
133
177
|
- Gemfile
|
134
|
-
- Gemfile.lock
|
135
178
|
- LICENSE.txt
|
136
179
|
- README.md
|
137
180
|
- Rakefile
|
138
181
|
- lib/lita-zendesk.rb
|
139
182
|
- lib/lita/handlers/zendesk.rb
|
183
|
+
- lita-zendesk.gemspec
|
184
|
+
- locales/en.yml
|
140
185
|
- spec/spec_helper.rb
|
141
186
|
homepage: https://github.com/grokify/lita-zendesk
|
142
187
|
licenses:
|
data/Gemfile.lock
DELETED
@@ -1,99 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
lita-zendesk (0.0.1)
|
5
|
-
lita (>= 4.4.3)
|
6
|
-
|
7
|
-
GEM
|
8
|
-
remote: https://rubygems.org/
|
9
|
-
specs:
|
10
|
-
byebug (9.0.5)
|
11
|
-
coderay (1.1.1)
|
12
|
-
coveralls (0.8.15)
|
13
|
-
json (>= 1.8, < 3)
|
14
|
-
simplecov (~> 0.12.0)
|
15
|
-
term-ansicolor (~> 1.3)
|
16
|
-
thor (~> 0.19.1)
|
17
|
-
tins (>= 1.6.0, < 2)
|
18
|
-
diff-lcs (1.2.5)
|
19
|
-
docile (1.1.5)
|
20
|
-
faraday (0.9.2)
|
21
|
-
multipart-post (>= 1.2, < 3)
|
22
|
-
http_router (0.11.2)
|
23
|
-
rack (>= 1.0.0)
|
24
|
-
url_mount (~> 0.2.1)
|
25
|
-
i18n (0.7.0)
|
26
|
-
ice_nine (0.11.2)
|
27
|
-
json (1.8.3)
|
28
|
-
lita (4.7.0)
|
29
|
-
bundler (>= 1.3)
|
30
|
-
faraday (>= 0.8.7)
|
31
|
-
http_router (>= 0.11.2)
|
32
|
-
i18n (>= 0.6.9)
|
33
|
-
ice_nine (>= 0.11.0)
|
34
|
-
multi_json (>= 1.7.7)
|
35
|
-
puma (>= 2.7.1)
|
36
|
-
rack (>= 1.5.2)
|
37
|
-
rb-readline (>= 0.5.1)
|
38
|
-
redis-namespace (>= 1.3.0)
|
39
|
-
thor (>= 0.18.1)
|
40
|
-
method_source (0.8.2)
|
41
|
-
multi_json (1.12.1)
|
42
|
-
multipart-post (2.0.0)
|
43
|
-
pry (0.10.4)
|
44
|
-
coderay (~> 1.1.0)
|
45
|
-
method_source (~> 0.8.1)
|
46
|
-
slop (~> 3.4)
|
47
|
-
pry-byebug (3.4.0)
|
48
|
-
byebug (~> 9.0)
|
49
|
-
pry (~> 0.10)
|
50
|
-
puma (3.6.0)
|
51
|
-
rack (2.0.1)
|
52
|
-
rack-test (0.6.3)
|
53
|
-
rack (>= 1.0)
|
54
|
-
rake (11.2.2)
|
55
|
-
rb-readline (0.5.3)
|
56
|
-
redis (3.3.1)
|
57
|
-
redis-namespace (1.5.2)
|
58
|
-
redis (~> 3.0, >= 3.0.4)
|
59
|
-
rspec (3.5.0)
|
60
|
-
rspec-core (~> 3.5.0)
|
61
|
-
rspec-expectations (~> 3.5.0)
|
62
|
-
rspec-mocks (~> 3.5.0)
|
63
|
-
rspec-core (3.5.2)
|
64
|
-
rspec-support (~> 3.5.0)
|
65
|
-
rspec-expectations (3.5.0)
|
66
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
67
|
-
rspec-support (~> 3.5.0)
|
68
|
-
rspec-mocks (3.5.0)
|
69
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
70
|
-
rspec-support (~> 3.5.0)
|
71
|
-
rspec-support (3.5.0)
|
72
|
-
simplecov (0.12.0)
|
73
|
-
docile (~> 1.1.0)
|
74
|
-
json (>= 1.8, < 3)
|
75
|
-
simplecov-html (~> 0.10.0)
|
76
|
-
simplecov-html (0.10.0)
|
77
|
-
slop (3.6.0)
|
78
|
-
term-ansicolor (1.3.2)
|
79
|
-
tins (~> 1.0)
|
80
|
-
thor (0.19.1)
|
81
|
-
tins (1.12.0)
|
82
|
-
url_mount (0.2.1)
|
83
|
-
rack
|
84
|
-
|
85
|
-
PLATFORMS
|
86
|
-
ruby
|
87
|
-
|
88
|
-
DEPENDENCIES
|
89
|
-
bundler (~> 1.3)
|
90
|
-
coveralls
|
91
|
-
lita-zendesk!
|
92
|
-
pry-byebug
|
93
|
-
rack-test
|
94
|
-
rake
|
95
|
-
rspec (>= 3.0.0)
|
96
|
-
simplecov (>= 0.9.2)
|
97
|
-
|
98
|
-
BUNDLED WITH
|
99
|
-
1.12.5
|