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 +4 -4
- data/lib/easy/resources.rb +2 -0
- data/lib/easy/resources/redmine/errors.rb +15 -0
- data/lib/easy/resources/redmine/redmine_base.rb +11 -1
- data/lib/easy/resources/version.rb +1 -1
- data/spec/fixtures/files/time_entry/invalid_update.xml +4 -0
- data/spec/models/easy-resources/redmine/errors_spec.rb +15 -0
- metadata +8 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fdaa3a94f0e1549a33bfe6e3c9401824ed0ae9937b8be66e75efb2c1bb64c89e
|
4
|
+
data.tar.gz: bda0af2d019e2e28ea1236344d038b3fd59a2459da0b0bb83bbcd73a204ed8ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d02e7009079481c7b40730e126826f0288fec9f2abd454e05ab5ed1268c5c794802095fc63ed077be184ae7a0894f682b64aea716c30e31dccf4a2766fb7dc00
|
7
|
+
data.tar.gz: cbd2cc87d9d53f70367fb2b6604b67cda4c73becd7dbecebae5fc5c6a48f78bdf4637fcf679fe3be92531883146afb13af231f859967b9cd11f3db6a368a01a0
|
data/lib/easy/resources.rb
CHANGED
@@ -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
|
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
|
@@ -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.
|
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
|
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.
|
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
|