easy-resources 0.8.0 → 0.8.1

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: 3848905fec923b2461ca35dab3f43d13f9e690c36a43dafe03e0cfa37ab39775
4
- data.tar.gz: db2a4779b7c4774ee382e21cc79366f510f4af2c4cb23caec61c9f70748ae200
3
+ metadata.gz: fdaa3a94f0e1549a33bfe6e3c9401824ed0ae9937b8be66e75efb2c1bb64c89e
4
+ data.tar.gz: bda0af2d019e2e28ea1236344d038b3fd59a2459da0b0bb83bbcd73a204ed8ee
5
5
  SHA512:
6
- metadata.gz: 3b613b8e5910f904790aeee7bdce6bfb2245e46ccc7a9f07ff98c534f93b1c42b22dbfb37a8bfabcb0b0204f64d4edcc26572b7d13ad82cc332ee6aaa57f4ba1
7
- data.tar.gz: 42e293bf5b410c0b2b7917bb3c2311a34e030c6a791f6268d776b2f1dfb430fcf17cea2385d53b9497541656aa3163da3a9c5e0da7a6ec8f2af262a43117e5ed
6
+ metadata.gz: d02e7009079481c7b40730e126826f0288fec9f2abd454e05ab5ed1268c5c794802095fc63ed077be184ae7a0894f682b64aea716c30e31dccf4a2766fb7dc00
7
+ data.tar.gz: cbd2cc87d9d53f70367fb2b6604b67cda4c73becd7dbecebae5fc5c6a48f78bdf4637fcf679fe3be92531883146afb13af231f859967b9cd11f3db6a368a01a0
@@ -9,6 +9,8 @@ module Easy
9
9
  module Resources
10
10
  module Redmine
11
11
 
12
+ autoload :Errors, "easy/resources/redmine/errors"
13
+
12
14
  autoload :RedmineBase, "easy/resources/redmine/redmine_base"
13
15
  autoload :EasyAttendance, "easy/resources/redmine/easy_attendance"
14
16
  autoload :EasyContact, "easy/resources/redmine/easy_contact"
@@ -0,0 +1,15 @@
1
+ module Easy
2
+ module Resources
3
+ module Redmine
4
+ class Errors < ::ActiveResource::Errors
5
+
6
+ # Redmine in XML responses specify type="array" on Errors
7
+ # It cause that `Hash.from_xml` already parsed errors as a Array
8
+ def from_xml(xml, save_cache = false)
9
+ array = Array.wrap(Hash.from_xml(xml)["errors"]) rescue []
10
+ from_array array, save_cache
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -26,10 +26,16 @@ module Easy
26
26
  h
27
27
  end
28
28
 
29
+ # Parse value of TOTAL amount of entities from headers or response
30
+ # @return [Integer]
31
+ def retrieve_total(response)
32
+ (response['Total'] || response.body[/total_count[:="]+(\d+)/] && $1).to_i
33
+ end
34
+
29
35
  def get_all(**params, &block)
30
36
  records = results = all(params: params)
31
37
  response = results.http_response
32
- total = response['Total'].to_i
38
+ total = retrieve_total(response)
33
39
  current_page = 1
34
40
 
35
41
  while records.any?
@@ -46,6 +52,10 @@ module Easy
46
52
  end
47
53
 
48
54
  end
55
+
56
+ def errors
57
+ @errors ||= Errors.new(self)
58
+ end
49
59
  end
50
60
  end
51
61
  end
@@ -1,5 +1,5 @@
1
1
  module Easy
2
2
  module Resources
3
- VERSION = '0.8.0'
3
+ VERSION = '0.8.1'
4
4
  end
5
5
  end
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <errors type="array">
3
+ <error>Projekt je neplatné</error>
4
+ </errors>
@@ -0,0 +1,15 @@
1
+ RSpec.describe Easy::Resources::Redmine::Errors do
2
+ include_context "redmine active resource shares" do
3
+ let(:entity_name) { 'time_entry' }
4
+ end
5
+
6
+ it 'invalid request' do
7
+ stub_xml source_file: "invalid_update", path: "#{entity_name.pluralize}.xml", method: :post, status: 422, request_body: { hours: 8.0, user_id: 1 }.to_xml(root: "time_entry")
8
+
9
+ time_entry = Easy::Resources::Redmine::TimeEntry.new hours: 8.0, user_id: 1
10
+ expect(time_entry.save).to eq false
11
+ expect(time_entry.errors).to be_a described_class
12
+ expect(time_entry.errors.full_messages).to eq ["Projekt je neplatné"]
13
+ end
14
+
15
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easy-resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - petr
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-29 00:00:00.000000000 Z
11
+ date: 2020-06-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -142,6 +142,7 @@ files:
142
142
  - lib/easy/resources/redmine/easy_web_application.rb
143
143
  - lib/easy/resources/redmine/easy_web_application_activity.rb
144
144
  - lib/easy/resources/redmine/easy_web_hook.rb
145
+ - lib/easy/resources/redmine/errors.rb
145
146
  - lib/easy/resources/redmine/issue.rb
146
147
  - lib/easy/resources/redmine/project.rb
147
148
  - lib/easy/resources/redmine/redmine_base.rb
@@ -168,6 +169,7 @@ files:
168
169
  - spec/fixtures/files/issue/show.xml
169
170
  - spec/fixtures/files/project.json
170
171
  - spec/fixtures/files/project/show.xml
172
+ - spec/fixtures/files/time_entry/invalid_update.xml
171
173
  - spec/fixtures/files/time_entry/show.xml
172
174
  - spec/fixtures/files/user/show.xml
173
175
  - spec/models/easy-resources/redmine/easy_attendance_spec.rb
@@ -176,6 +178,7 @@ files:
176
178
  - spec/models/easy-resources/redmine/easy_server_spec.rb
177
179
  - spec/models/easy-resources/redmine/easy_web_application_activity_spec.rb
178
180
  - spec/models/easy-resources/redmine/easy_web_application_spec.rb
181
+ - spec/models/easy-resources/redmine/errors_spec.rb
179
182
  - spec/models/easy-resources/redmine/issue_spec.rb
180
183
  - spec/models/easy-resources/redmine/project_spec.rb
181
184
  - spec/models/easy-resources/redmine/redmine_base_spec.rb
@@ -206,7 +209,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
206
209
  - !ruby/object:Gem::Version
207
210
  version: '0'
208
211
  requirements: []
209
- rubygems_version: 3.0.8
212
+ rubygems_version: 3.0.6
210
213
  signing_key:
211
214
  specification_version: 4
212
215
  summary: Summary of Easy::Resources.
@@ -221,6 +224,7 @@ test_files:
221
224
  - spec/models/easy-resources/redmine/easy_web_application_activity_spec.rb
222
225
  - spec/models/easy-resources/redmine/easy_web_application_spec.rb
223
226
  - spec/models/easy-resources/redmine/easy_server_spec.rb
227
+ - spec/models/easy-resources/redmine/errors_spec.rb
224
228
  - spec/models/easy-resources/redmine/user_spec.rb
225
229
  - spec/models/easy-resources/redmine/easy_attendance_spec.rb
226
230
  - spec/models/easy-resources/resource_spec.rb
@@ -230,6 +234,7 @@ test_files:
230
234
  - spec/easy_resources_spec.rb
231
235
  - spec/fixtures/files/easy_contact/show.xml
232
236
  - spec/fixtures/files/time_entry/show.xml
237
+ - spec/fixtures/files/time_entry/invalid_update.xml
233
238
  - spec/fixtures/files/easy_crm_case.json
234
239
  - spec/fixtures/files/easy_crm_case/show.xml
235
240
  - spec/fixtures/files/project.json