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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d14adbbb6cfb6bcd28a369de71608726014a378b
4
- data.tar.gz: bcc970b7e562eed22ae9b180a1e9737aa2bf103d
3
+ metadata.gz: 956fd4a26b6f2eba08ed381f2742879e1e95067c
4
+ data.tar.gz: 501b0918f52ac4a7a039163cc0a15600982cf0b7
5
5
  SHA512:
6
- metadata.gz: 6b422a4e99ebb3dc15fc35bf4ef43c90c85582d951ee335cfd1069c35a184c0c741801e9b211125caedcc855fb3bb794343dda60dae0bf9d0780cdee727c9a51
7
- data.tar.gz: d2c65390339e2c1791865126c9951d484cedfe6a4bae5c5bfb55acaaa65020a90a1b02628e9bcf0cd5c11e9bafae2b24b9fa4a7b8729e6206c35c29f4bee1b60
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
- when 200..299
34
- true
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
- ticket = Ticket.new(other_fields)
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
- @bin_tickets[bin_id] ||= begin
101
- get("/tickets?bin_id=#{bin_id}").map do |ticket_data|
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 :format
49
+ when 'id'
50
+ nil # id should not be in ticket body
51
+ when 'format'
48
52
  ['rtformat', field_value]
49
- when :title
53
+ when 'title'
50
54
  ['name', field_value]
51
- when :description
55
+ when 'description'
52
56
  ['description', normalise(field_value)]
53
- when :ticket_type
57
+ when 'ticket_type'
54
58
  ['ticketType_id', field_value.id]
55
- when :bin
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.to_s]
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)
@@ -1,3 +1,3 @@
1
1
  module Vimaly
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
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", "~> 1.12"
26
- spec.add_development_dependency "rake", "~> 10.0"
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.0
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-02-14 00:00:00.000000000 Z
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: '1.12'
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: '1.12'
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: '10.0'
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: '10.0'
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.6.8
183
+ rubygems_version: 2.5.1
170
184
  signing_key:
171
185
  specification_version: 4
172
186
  summary: Wrapper for the Vimaly API