easy-resources 0.8.0 → 0.8.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
  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