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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1f1b2abb1bf2d64aeec53cd821b2252e347676efa91c3d70c3e41a75a0b1d05f
4
- data.tar.gz: bc39366394d3356484a3a4469306e36397fa7a4b6e95835c08b68cef220b8d97
3
+ metadata.gz: 1fb1f7944e74c2ce2cc58ba3e864ffb690f8ca9671db7a79ed027d236892d80f
4
+ data.tar.gz: 33dea6e1d699b345ca168600ffbe97fa5b67e2503298c1ae77a0f879d70c6804
5
5
  SHA512:
6
- metadata.gz: 177b8db20f9cb273bd1e58cfefd98a3ccfd420ea8f9c876ae5250735900016e98a1212099b0988f3438d80d028d9df84954501ebc472e37992bcb40563e4301f
7
- data.tar.gz: '08558abc4b0110540bb0d796ade2bb70dc330f8c728c1fd3fb8ba90408261676f3470bc676105e53bd3bf6b527665602b2ea34c58247f9b3f584fb691f02963a'
6
+ metadata.gz: 4598f50532267ef4f38e195822c4014f8e444b9ad07db585ce8aff11772cc79a5d72e1832c6f9aa553a348e490cd337af9697d31326f32ad60487c673d2def10
7
+ data.tar.gz: 73748e5074cdc80b1c70f8269320905c5dfc6719b6b1480a7ebbfd1f720b726fb2c0ac29c4a1b4f729d54f0f9518536246b0f3e70fcec193305ffe49716d9e6c
data/changelog.md CHANGED
@@ -1,3 +1,6 @@
1
+ * MojitoImport 0.8.0
2
+ * new json schema !
3
+
1
4
  * MojitoImport 0.7.0
2
5
  * iFrame with token auth
3
6
 
@@ -1,53 +1,70 @@
1
+ require 'json'
2
+
1
3
  module MojitoImport
2
4
  class Report
3
- attr_accessor :data_errors, :general_errors, :data_updates, :import_id
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.data_errors = []
8
- self.general_errors = []
9
- self.data_updates = []
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 add_general_error(error)
13
- general_errors << error
23
+ def add_request_error(error)
24
+ request_errors << error
14
25
  end
15
26
 
16
- def add_data_update(mojito_id, field, from, to: nil)
17
- # reload!; report = MojitoImport::Report.new('1234'); report.add_data_error('123', 'name', 'your name sucks')
27
+ def add_object_update(mojito_id, field, from, to: nil)
28
+
18
29
  hash_element =
19
- data_updates.detect { |error_hash| error_hash["mojitoId"] == mojito_id }
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 = { "mojitoId" => mojito_id, field => update_hash }
26
- data_updates << new_update_hash
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 add_data_error(mojito_id, field, error)
33
- # reload!; report = MojitoImport::Report.new('1234'); report.add_data_error('123', 'name', 'your name sucks')
43
+ def add_object_error(mojito_id, error, field: nil)
44
+
34
45
  hash_element =
35
- data_errors.detect { |error_hash| error_hash["mojitoId"] == mojito_id }
46
+ object_errors.detect { |error_hash| error_hash["mojitoObjectId"] == mojito_id }
36
47
 
37
48
  if hash_element.nil?
38
- new_error_hash = { "mojitoId" => mojito_id, field => [error] }
39
- data_errors << new_error_hash
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
- data_error = data_errors.detect { |data| data["mojitoId"] == mojito_id }
48
- return if data_error.nil?
64
+ object_error = object_errors.detect { |data| data["mojitoObjectId"] == mojito_id }
65
+ return if object_error.nil?
49
66
 
50
- data_error.except("mojitoId")
67
+ object_error.except("mojitoObjectId")
51
68
  end
52
69
  end
53
70
  end
@@ -1,3 +1,3 @@
1
1
  module MojitoImport
2
- VERSION = "0.7.0"
2
+ VERSION = "0.8.0"
3
3
  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.7.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-21 00:00:00.000000000 Z
11
+ date: 2020-01-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client