mojito_import 0.7.0 → 0.8.0
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/changelog.md +3 -0
- data/lib/mojito_import/report.rb +39 -22
- data/lib/mojito_import/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1fb1f7944e74c2ce2cc58ba3e864ffb690f8ca9671db7a79ed027d236892d80f
|
4
|
+
data.tar.gz: 33dea6e1d699b345ca168600ffbe97fa5b67e2503298c1ae77a0f879d70c6804
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4598f50532267ef4f38e195822c4014f8e444b9ad07db585ce8aff11772cc79a5d72e1832c6f9aa553a348e490cd337af9697d31326f32ad60487c673d2def10
|
7
|
+
data.tar.gz: 73748e5074cdc80b1c70f8269320905c5dfc6719b6b1480a7ebbfd1f720b726fb2c0ac29c4a1b4f729d54f0f9518536246b0f3e70fcec193305ffe49716d9e6c
|
data/changelog.md
CHANGED
data/lib/mojito_import/report.rb
CHANGED
@@ -1,53 +1,70 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
1
3
|
module MojitoImport
|
2
4
|
class Report
|
3
|
-
attr_accessor :
|
5
|
+
attr_accessor :object_errors, :request_errors, :object_updates, :import_id
|
4
6
|
|
5
7
|
def initialize(import_id)
|
6
8
|
self.import_id = import_id
|
7
|
-
self.
|
8
|
-
self.
|
9
|
-
self.
|
9
|
+
self.object_errors = []
|
10
|
+
self.request_errors = []
|
11
|
+
self.object_updates = []
|
12
|
+
end
|
13
|
+
|
14
|
+
def to_json
|
15
|
+
{
|
16
|
+
"mojitoRequestId" => self.import_id,
|
17
|
+
"requestErrors" => self.request_errors,
|
18
|
+
"objectErrors" => self.object_errors,
|
19
|
+
"objectUpdates" => self.object_updates
|
20
|
+
}.to_json
|
10
21
|
end
|
11
22
|
|
12
|
-
def
|
13
|
-
|
23
|
+
def add_request_error(error)
|
24
|
+
request_errors << error
|
14
25
|
end
|
15
26
|
|
16
|
-
def
|
17
|
-
|
27
|
+
def add_object_update(mojito_id, field, from, to: nil)
|
28
|
+
|
18
29
|
hash_element =
|
19
|
-
|
30
|
+
object_updates.detect { |error_hash| error_hash["mojitoObjectId"] == mojito_id }
|
20
31
|
|
21
32
|
update_hash = {"before" => from}
|
22
33
|
update_hash["after"] = to unless to.nil?
|
23
34
|
|
24
35
|
if hash_element.nil?
|
25
|
-
new_update_hash = { "
|
26
|
-
|
36
|
+
new_update_hash = { "mojitoObjectId" => mojito_id, field => update_hash }
|
37
|
+
object_updates << new_update_hash
|
27
38
|
else
|
28
39
|
hash_element[field] = update_hash
|
29
40
|
end
|
30
41
|
end
|
31
42
|
|
32
|
-
def
|
33
|
-
|
43
|
+
def add_object_error(mojito_id, error, field: nil)
|
44
|
+
|
34
45
|
hash_element =
|
35
|
-
|
46
|
+
object_errors.detect { |error_hash| error_hash["mojitoObjectId"] == mojito_id }
|
36
47
|
|
37
48
|
if hash_element.nil?
|
38
|
-
|
39
|
-
|
40
|
-
else
|
41
|
-
hash_element[field] ||= []
|
42
|
-
hash_element[field] << error
|
49
|
+
hash_element = { "mojitoObjectId" => mojito_id, "general" => [], "fields" => { } }
|
50
|
+
object_errors << hash_element
|
43
51
|
end
|
52
|
+
|
53
|
+
if field.nil? # it's a general error
|
54
|
+
hash_element["general"] << error
|
55
|
+
else
|
56
|
+
# The field has to be initialized to an array
|
57
|
+
# Else we got an error when adding an error to a 2nd field
|
58
|
+
hash_element["fields"][field] ||= []
|
59
|
+
hash_element["fields"][field] << error
|
60
|
+
end
|
44
61
|
end
|
45
62
|
|
46
63
|
def find_errors_for_object(mojito_id)
|
47
|
-
|
48
|
-
return if
|
64
|
+
object_error = object_errors.detect { |data| data["mojitoObjectId"] == mojito_id }
|
65
|
+
return if object_error.nil?
|
49
66
|
|
50
|
-
|
67
|
+
object_error.except("mojitoObjectId")
|
51
68
|
end
|
52
69
|
end
|
53
70
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mojito_import
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Darde
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-01-
|
11
|
+
date: 2020-01-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|