vimaly 0.2.0 → 0.2.1
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/lib/vimaly/client.rb +7 -8
- data/lib/vimaly/ticket.rb +23 -9
- data/lib/vimaly/version.rb +1 -1
- data/vimaly.gemspec +3 -2
- metadata +25 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 956fd4a26b6f2eba08ed381f2742879e1e95067c
|
4
|
+
data.tar.gz: 501b0918f52ac4a7a039163cc0a15600982cf0b7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 35e629bd3feb3ff0f584e3211f01a570b06fe96d93e83f87f73eca4ea0892658f5cc7534c52f8af4a133cc8e7242fabbca23b3c7e28b908ef06f1e16401c9634
|
7
|
+
data.tar.gz: a213d402482328b805eafef6c6454c6d1a3b5646df734dc2e614c931ff2c24dd97fbbf6f95ea62e620d72f403d5b81312a515547d22fd559e5b5ad67c90b2526
|
data/lib/vimaly/client.rb
CHANGED
@@ -30,8 +30,8 @@ module Vimaly
|
|
30
30
|
ticket_to_json = ticket.to_json(custom_field_name_map)
|
31
31
|
response = post("/tickets/#{next_ticket_id}", ticket_to_json)
|
32
32
|
case response.status
|
33
|
-
|
34
|
-
|
33
|
+
when 200..299
|
34
|
+
true
|
35
35
|
else
|
36
36
|
log_warn "status: #{response.status}"
|
37
37
|
log_warn " #{response.inspect}"
|
@@ -40,7 +40,7 @@ module Vimaly
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def update_ticket(id, other_fields)
|
43
|
-
|
43
|
+
ticket = Ticket.new(other_fields)
|
44
44
|
|
45
45
|
response = put("/tickets/#{id}", ticket.to_json(custom_field_name_map, true))
|
46
46
|
case response.status
|
@@ -97,11 +97,10 @@ module Vimaly
|
|
97
97
|
ticket_type_map = Hash[ticket_types.map { |t| [t.id, t] }]
|
98
98
|
bin_map = Hash[bins.map { |b| [b.id, b] }]
|
99
99
|
|
100
|
-
|
101
|
-
|
102
|
-
Ticket.from_vimaly(ticket_data, ticket_type_map, bin_map, custom_fields)
|
103
|
-
end
|
100
|
+
get("/tickets?bin_id=#{bin_id}").map do |ticket_data|
|
101
|
+
Ticket.from_vimaly(ticket_data, ticket_type_map, bin_map, custom_fields)
|
104
102
|
end
|
103
|
+
|
105
104
|
end
|
106
105
|
|
107
106
|
def matching_tickets_in_named_bin(bin_name, title_matcher)
|
@@ -144,7 +143,7 @@ module Vimaly
|
|
144
143
|
request.headers.update({ accept: 'application/json', content_type: 'application/json' })
|
145
144
|
end
|
146
145
|
unless response.success?
|
147
|
-
raise("Vimaly #{api_path} call failed")
|
146
|
+
raise("Vimaly #{api_path} call failed with response #{response.status}")
|
148
147
|
end
|
149
148
|
JSON.parse(response.body)
|
150
149
|
end
|
data/lib/vimaly/ticket.rb
CHANGED
@@ -1,12 +1,14 @@
|
|
1
|
+
require "active_support/core_ext/hash/indifferent_access"
|
2
|
+
|
1
3
|
module Vimaly
|
2
4
|
class Ticket
|
3
5
|
|
4
6
|
# title, description, format, ticket_type, bin, id=nil
|
5
7
|
def initialize(*params)
|
6
8
|
if params.first.is_a?(Hash)
|
7
|
-
@ticket_fields = params.first
|
9
|
+
@ticket_fields = HashWithIndifferentAccess.new(params.first)
|
8
10
|
else
|
9
|
-
@ticket_fields =
|
11
|
+
@ticket_fields = HashWithIndifferentAccess.new
|
10
12
|
[:title, :description, :format, :ticket_type, :bin, :id].each_with_index do |param_key, idx|
|
11
13
|
break if idx>=params.size
|
12
14
|
@ticket_fields[param_key] = params[idx]
|
@@ -44,19 +46,22 @@ module Vimaly
|
|
44
46
|
def to_vimaly(custom_field_name_map, for_update=false)
|
45
47
|
vimaly_fields = Hash[@ticket_fields.map do |field_name, field_value|
|
46
48
|
case(field_name)
|
47
|
-
when
|
49
|
+
when 'id'
|
50
|
+
nil # id should not be in ticket body
|
51
|
+
when 'format'
|
48
52
|
['rtformat', field_value]
|
49
|
-
when
|
53
|
+
when 'title'
|
50
54
|
['name', field_value]
|
51
|
-
when
|
55
|
+
when 'description'
|
52
56
|
['description', normalise(field_value)]
|
53
|
-
when
|
57
|
+
when 'ticket_type'
|
54
58
|
['ticketType_id', field_value.id]
|
55
|
-
when
|
59
|
+
when 'bin'
|
56
60
|
['bin_id', field_value.id]
|
57
61
|
else
|
58
62
|
if for_update
|
59
|
-
fdef = custom_field_name_map[field_name
|
63
|
+
fdef = custom_field_name_map[field_name]
|
64
|
+
raise "Field type #{field_name} is not a defined custom or standard field in Vimaly" unless fdef
|
60
65
|
["customFields.#{fdef[:id]}", cast_to_vimaly(field_value, fdef[:type])]
|
61
66
|
else
|
62
67
|
nil
|
@@ -66,7 +71,7 @@ module Vimaly
|
|
66
71
|
]
|
67
72
|
|
68
73
|
unless for_update
|
69
|
-
custom_fields = @ticket_fields.select {|fn, _v| ![:format, :title, :description, :ticket_type, :bin].include?(fn) }
|
74
|
+
custom_fields = @ticket_fields.select {|fn, _v| ![:format, :title, :description, :ticket_type, :bin].include?(fn.to_sym) }
|
70
75
|
if custom_fields && !custom_fields.empty?
|
71
76
|
vimaly_fields['customFields'] =
|
72
77
|
Hash[custom_fields.map do |field_name, field_value|
|
@@ -98,6 +103,11 @@ module Vimaly
|
|
98
103
|
to_vimaly(custom_field_name_map, for_update).to_json
|
99
104
|
end
|
100
105
|
|
106
|
+
def add_id(id)
|
107
|
+
raise "Ticket already has id #{@ticket_fields[:'_id']} and we try and add #{id}" if @ticket_fields[:'_id']
|
108
|
+
@ticket_fields['_id'] = id
|
109
|
+
end
|
110
|
+
|
101
111
|
def [](name)
|
102
112
|
@ticket_fields[name]
|
103
113
|
end
|
@@ -108,6 +118,10 @@ module Vimaly
|
|
108
118
|
super
|
109
119
|
end
|
110
120
|
|
121
|
+
def update_fields(fields)
|
122
|
+
@ticket_fields.merge!(fields)
|
123
|
+
end
|
124
|
+
|
111
125
|
private
|
112
126
|
|
113
127
|
def normalise(text)
|
data/lib/vimaly/version.rb
CHANGED
data/vimaly.gemspec
CHANGED
@@ -21,9 +21,10 @@ Gem::Specification.new do |spec|
|
|
21
21
|
|
22
22
|
spec.add_dependency "faraday"
|
23
23
|
spec.add_dependency "faraday_middleware"
|
24
|
+
spec.add_dependency "activesupport"
|
24
25
|
|
25
|
-
spec.add_development_dependency "bundler"
|
26
|
-
spec.add_development_dependency "rake"
|
26
|
+
spec.add_development_dependency "bundler"
|
27
|
+
spec.add_development_dependency "rake"
|
27
28
|
spec.add_development_dependency "pry"
|
28
29
|
spec.add_development_dependency "maxitest", '~> 1'
|
29
30
|
spec.add_development_dependency "shoulda-context"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vimaly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thorsten Boettger
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-03-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -38,34 +38,48 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: activesupport
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: bundler
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
|
-
- - "
|
59
|
+
- - ">="
|
46
60
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
61
|
+
version: '0'
|
48
62
|
type: :development
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
|
-
- - "
|
66
|
+
- - ">="
|
53
67
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
68
|
+
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: rake
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
|
-
- - "
|
73
|
+
- - ">="
|
60
74
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
75
|
+
version: '0'
|
62
76
|
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
|
-
- - "
|
80
|
+
- - ">="
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: pry
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -166,7 +180,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
166
180
|
version: '0'
|
167
181
|
requirements: []
|
168
182
|
rubyforge_project:
|
169
|
-
rubygems_version: 2.
|
183
|
+
rubygems_version: 2.5.1
|
170
184
|
signing_key:
|
171
185
|
specification_version: 4
|
172
186
|
summary: Wrapper for the Vimaly API
|