vimaly 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7e67a18552b8d4a3c3bf527a2bb4fb859a15b8c59e0fded3fc7f5138df00d375
4
- data.tar.gz: 5a1c9269b2556e45fe0eb867f4ad31f4fa73b11bd581da743ea5dc15eca2717c
3
+ metadata.gz: 2fbe16192cd230b1bc9195d5ef9f8faea9c0bdd99041be3b04abf87fb26f27e6
4
+ data.tar.gz: 713fa776cc88c0cf8b37dcbeae00cc4a3faabc5da76e17ad36c1e4cfd37fe385
5
5
  SHA512:
6
- metadata.gz: 610de2b9dac4235222006ab0361a3d62f0c42ff6c6a67e5c6173ddb700ba19608a17f51e6d06c7d07bdf10b3791f3a88fe9dd98bf52a3cd6f355fb227a474142
7
- data.tar.gz: a58e11c17157e1192383164018457b11502f6b284582432c6d04224bdbd7365f2a322847cfd7eebb8176f713a5025098276683bcee79277a9b6294d487741c4d
6
+ metadata.gz: f68b2e105cf61343ac2d2eb452ac3bb1b427deef775fc0d31b9a327839debe8a403a2c37780bd013275b16b8b70fde7be07a2211ba2ce12b670a99711b05c416
7
+ data.tar.gz: c50e2bb91e042557c69a74a608c6625898b6272359822e4c10e846e86aaad959e1d408d3babcc194e6be130c94dd94449703294c7a412c8e0cffd5efdfc9a1e8
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 1.3.0
4
+
5
+ * add support for more than 200 results when searching for tickets [#22](https://github.com/sharesight/vimaly/pull/22)
6
+
3
7
  ## 1.2.0
4
8
 
5
9
  * add support for more than 500 bins, refactored and options added [#21](https://github.com/sharesight/vimaly/pull/21)
data/lib/vimaly/client.rb CHANGED
@@ -58,9 +58,32 @@ module Vimaly
58
58
  ticket_type_map = Hash[ticket_types.map { |t| [t.id, t] }]
59
59
  bin_map = Hash[bins.map { |b| [b.id, b] }]
60
60
 
61
- get("/ticket-search?text=#{query_string}&state=#{state}").map do |ticket_data|
62
- Ticket.from_vimaly(ticket_data, ticket_type_map, bin_map, custom_fields)
61
+ tickets = []
62
+ i = 0
63
+
64
+ while (i * 500) <= 5000
65
+ # Without max-results the request defaults to 200.
66
+ # The maximum max-results is 500, so will do 10 requests to get our maximum of 5000 tickets.
67
+ search_response = get("/ticket-search?text=#{query_string}&state=#{state}&max-results=500&page-token=#{i * 500}")
68
+
69
+ response_tickets = case search_response
70
+ when Array
71
+ search_response.map do |ticket_data|
72
+ Ticket.from_vimaly(ticket_data, ticket_type_map, bin_map, custom_fields)
73
+ end
74
+ when Hash # Will be a hash when only 1 ticket is returned.
75
+ [Ticket.from_vimaly(search_response, ticket_type_map, bin_map, custom_fields)]
76
+ else # If reponse is nil then we know we've got all the data
77
+ break
78
+ end
79
+
80
+ tickets.concat(response_tickets)
81
+ break if response_tickets.size < 500 # Can finish search because we've returned all there is.
82
+
83
+ i += 1
63
84
  end
85
+
86
+ tickets
64
87
  end
65
88
 
66
89
  def add_attachment(ticket_id, file_name, file_content, request_options={})
@@ -1,3 +1,3 @@
1
1
  module Vimaly
2
- VERSION = "1.2.0".freeze
2
+ VERSION = "1.3.0".freeze
3
3
  end
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: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thorsten Boettger
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-09-02 00:00:00.000000000 Z
11
+ date: 2021-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -181,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
181
181
  - !ruby/object:Gem::Version
182
182
  version: '0'
183
183
  requirements: []
184
- rubygems_version: 3.2.17
184
+ rubygems_version: 3.0.6
185
185
  signing_key:
186
186
  specification_version: 4
187
187
  summary: Wrapper for the Vimaly API