ecoportal-api 0.1.12 → 0.2.0

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: a872d32e0481811ea0ab8cd922a27917d164e91032750d42987e43035408dfe8
4
- data.tar.gz: fb83215e5acb23390fd0e2fd040ab5f6afbe0d0d78ccdc486d3058c05f5ad454
3
+ metadata.gz: 5b5603297e3d8f896195915049712b370adfe3dd903fa980bb89d57b4c41c8cb
4
+ data.tar.gz: 46ea17c5f957ac03f8db92241477b8c823e2f0685fc0ef6bbf2dbf3e0722461e
5
5
  SHA512:
6
- metadata.gz: 7a1b0ad316cdb30703c9d10db2a64de762d209e1f1e174ff17aedaf391f8ef10e2ca0959c4724dd533f9e92c1aa88e523bec71edd12a9b5e4bc9f28188b96775
7
- data.tar.gz: 2d24729c40a17c9d3afb80ee9b7bdffedaedcf502a77f6ffd1ca300b4de0b8de75d4e71db4dc0abacf0bd9643fb8652217d146e8ef72d4fed58a9ef3fb61279a
6
+ metadata.gz: f8ebd19ddf1ccce8b78bd703043f9e2f02fa9296c4872bea6f4143aa097b4dba200e65dbb030bb2c06694615e2e9e4de29b8fa4b0f6d10d5aff8a649a005826c
7
+ data.tar.gz: a2437d527e4043160bd2cd8c74bf011ee419b4348f37679ed02db890a95de436ae4d325f3a9f84b44f270c8cefa518bb8a4f11c481958379513080a82d116ff7
@@ -8,6 +8,12 @@ module Ecoportal
8
8
  @original_doc = JSON.parse(doc.to_json)
9
9
  end
10
10
 
11
+ def self.build(doc = {})
12
+ new(doc).tap do |instance|
13
+ instance.instance_variable_set("@original_doc", {})
14
+ end
15
+ end
16
+
11
17
  def print
12
18
  puts JSON.pretty_generate(as_json)
13
19
  self
@@ -30,7 +30,7 @@ module Ecoportal
30
30
 
31
31
  batch_response = BatchResponse.new(status, body)
32
32
  if batch_response.success? && method == "GET"
33
- callback.call response, @wrapper.new(body)
33
+ callback.call batch_response, @wrapper.new(body)
34
34
  else
35
35
  callback.call batch_response
36
36
  end
@@ -21,6 +21,9 @@ module Ecoportal
21
21
  id or raise "No ID has been given!"
22
22
  id
23
23
  end
24
+ def get_external_id(doc)
25
+ doc.respond_to?(:external_id) ? doc.external_id : nil
26
+ end
24
27
  end
25
28
  end
26
29
  end
@@ -13,7 +13,7 @@ module Ecoportal
13
13
  b_value = b[key]
14
14
  next if a_value == b_value && !ID_KEYS.include?(key)
15
15
  diffed[key] = diff(a_value, b_value)
16
- diffed.delete[key] if diffed[key] == {}
16
+ diffed.delete(key) if diffed[key] == {}
17
17
  end
18
18
  # All keys are IDs, so it's actually blank
19
19
  if (diffed.keys - ID_KEYS).empty?
@@ -47,9 +47,10 @@ module Ecoportal
47
47
  end
48
48
 
49
49
  def upsert(doc)
50
- body = get_body(doc)
51
- id = get_id(doc)
52
- @client.post("/people/"+CGI::escape(id), data: body)
50
+ body = get_body(doc)
51
+ id = get_id(doc)
52
+ external_id = get_external_id(doc)
53
+ @client.post("/people/"+CGI::escape(external_id || id), data: body)
53
54
  end
54
55
 
55
56
  def batch
@@ -74,26 +75,6 @@ module Ecoportal
74
75
  def person_class
75
76
  V1::Person
76
77
  end
77
-
78
- def get_body(doc)
79
- if doc.respond_to?(:as_update)
80
- doc.as_update
81
- elsif doc.respond_to?(:as_json)
82
- doc.as_json
83
- else
84
- doc
85
- end
86
- end
87
- def get_id(doc)
88
- id = nil
89
- id ||= doc.id if doc.respond_to?(:id)
90
- id ||= doc.external_id if doc.respond_to?(:external_id)
91
- id ||= doc["id"] if doc.is_a?(Hash)
92
- id ||= doc["external_id"] if doc.is_a?(Hash)
93
- id ||= doc if doc.is_a?(String)
94
- id or raise "No ID has been given!"
95
- id
96
- end
97
78
  end
98
79
  end
99
80
  end
@@ -41,6 +41,8 @@ module Ecoportal
41
41
  def []=(id, value)
42
42
  if field = get_field(id)
43
43
  field.value = value
44
+ else
45
+ raise "details[#{id.inspect}] is missing. Did you forget to load the schema?"
44
46
  end
45
47
  end
46
48
 
@@ -1,5 +1,5 @@
1
1
  module Ecoportal
2
2
  module API
3
- VERSION = "0.1.12"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ecoportal-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.12
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tapio Saarinen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-07-20 00:00:00.000000000 Z
11
+ date: 2018-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler