ecoportal-api 0.3.8 → 0.4.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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +11 -3
  3. data/.yardopts +10 -0
  4. data/Gemfile.lock +10 -5
  5. data/Rakefile +22 -1
  6. data/ecoportal-api.gemspec +6 -4
  7. data/lib/ecoportal/api/common.rb +7 -4
  8. data/lib/ecoportal/api/common/base_class.rb +29 -0
  9. data/lib/ecoportal/api/common/base_model.rb +89 -20
  10. data/lib/ecoportal/api/common/batch_operation.rb +0 -1
  11. data/lib/ecoportal/api/common/batch_response.rb +5 -0
  12. data/lib/ecoportal/api/common/client.rb +61 -1
  13. data/lib/ecoportal/api/common/doc_helpers.rb +2 -0
  14. data/lib/ecoportal/api/common/hash_diff.rb +25 -23
  15. data/lib/ecoportal/api/common/response.rb +4 -0
  16. data/lib/ecoportal/api/common/wrapped_response.rb +19 -10
  17. data/lib/ecoportal/api/internal.rb +17 -20
  18. data/lib/ecoportal/api/internal/account.rb +23 -16
  19. data/lib/ecoportal/api/internal/login_provider.rb +1 -1
  20. data/lib/ecoportal/api/internal/login_providers.rb +10 -0
  21. data/lib/ecoportal/api/internal/people.rb +3 -8
  22. data/lib/ecoportal/api/internal/permissions.rb +1 -1
  23. data/lib/ecoportal/api/internal/person.rb +18 -16
  24. data/lib/ecoportal/api/internal/person_details.rb +1 -5
  25. data/lib/ecoportal/api/internal/person_schema.rb +1 -5
  26. data/lib/ecoportal/api/internal/person_schemas.rb +2 -6
  27. data/lib/ecoportal/api/internal/policy_group.rb +1 -1
  28. data/lib/ecoportal/api/internal/policy_groups.rb +10 -1
  29. data/lib/ecoportal/api/v1.rb +27 -4
  30. data/lib/ecoportal/api/v1/people.rb +62 -25
  31. data/lib/ecoportal/api/v1/person.rb +47 -28
  32. data/lib/ecoportal/api/v1/person_details.rb +27 -13
  33. data/lib/ecoportal/api/v1/person_schema.rb +3 -6
  34. data/lib/ecoportal/api/v1/person_schemas.rb +26 -9
  35. data/lib/ecoportal/api/v1/schema_field.rb +1 -1
  36. data/lib/ecoportal/api/v1/schema_field_value.rb +2 -1
  37. data/lib/ecoportal/api/version.rb +1 -1
  38. metadata +45 -3
@@ -1,28 +1,45 @@
1
1
  module Ecoportal
2
2
  module API
3
3
  class V1
4
+ # @attr_reader client [Common::Client] a `Common::Client` object that holds the configuration of the api connection.
4
5
  class PersonSchemas
6
+ extend Common::BaseClass
5
7
  include Enumerable
8
+
9
+ class_resolver :person_schema_class, "Ecoportal::API::V1::PersonSchema"
10
+
6
11
  attr_reader :client
12
+
13
+ # @param client [Common::Client] a `Common::Client` object that holds the configuration of the api connection.
14
+ # @return [Schemas] an instance object ready to make schema api requests.
7
15
  def initialize(client)
8
16
  @client = client
9
17
  end
10
18
 
19
+ # Gets all the schemas via api request.
20
+ # @return [Enumerable<PersonSchema>] an `Enumerable` with all schemas already wrapped as `PersonSchema` objects.
21
+ def get_all
22
+ response = client.get("/person_schemas")
23
+ Common::WrappedResponse.new(response, person_schema_class)
24
+ end
25
+
26
+ # If a `block` is **not** given it calls [Object#to_enum](https://ruby-doc.org/core-2.6.2/Object.html#method-i-to_enum)
27
+ # Otherwise it calls `get_all`.
28
+ # @note
29
+ # - `:params` doesn't really do anything.
30
+ # - same as #get_all but with block :)
31
+ # - `to_a` will call `each` (see this [detailed explanation](https://stackoverflow.com/a/45201663/4352306))
32
+ # - however, as far as you have an iterator, such as `each`, `to_a` should be last resource (see [this explanation](https://stackoverflow.com/a/44186921/4352306))
33
+ # @yield [schema] does some stuff with the schema.
34
+ # @yieldparam schema [PersonSchema]
35
+ # @yieldreturn [PersonSchema]
36
+ # @return [Enumerable<PersonSchema>] an `Enumerable` with all the person schema objects.
11
37
  def each(params: {}, &block)
12
38
  return to_enum(:each) unless block
13
39
  get_all.each(&block)
14
40
  end
15
41
 
16
- def get_all
17
- response = @client.get("/person_schemas")
18
- Common::WrappedResponse.new(response, person_schema_class)
19
- end
20
-
21
- private
22
42
 
23
- def person_schema_class
24
- V1::PersonSchema
25
- end
26
43
  end
27
44
  end
28
45
  end
@@ -2,7 +2,7 @@ module Ecoportal
2
2
  module API
3
3
  class V1
4
4
  class SchemaField < Common::BaseModel
5
- passthrough :id, :alt_id, :name, :optional, :shared, :multiple, :type, :options, to: :doc
5
+ passthrough :id, :alt_id, :name, :optional, :shared, :multiple, :type, :options
6
6
 
7
7
  def parse_text(value)
8
8
  values = [*value.to_s.lines].map do |line|
@@ -1,8 +1,9 @@
1
1
  module Ecoportal
2
2
  module API
3
3
  class V1
4
+ # @todo Rename to PersonDetailsField
4
5
  class SchemaFieldValue < Common::BaseModel
5
- passthrough :id, :alt_id, :type, :name, :shared, :multiple, to: :doc
6
+ passthrough :id, :alt_id, :type, :name, :shared, :multiple
6
7
 
7
8
  def value
8
9
  return @value if defined?(@value)
@@ -1,5 +1,5 @@
1
1
  module Ecoportal
2
2
  module API
3
- VERSION = "0.3.8"
3
+ VERSION = "0.4.1"
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.3.8
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tapio Saarinen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-02-25 00:00:00.000000000 Z
11
+ date: 2019-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,46 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: yard
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.9'
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: 0.9.18
65
+ type: :development
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - "~>"
70
+ - !ruby/object:Gem::Version
71
+ version: '0.9'
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 0.9.18
75
+ - !ruby/object:Gem::Dependency
76
+ name: redcarpet
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: 3.4.0
82
+ - - "~>"
83
+ - !ruby/object:Gem::Version
84
+ version: '3.4'
85
+ type: :development
86
+ prerelease: false
87
+ version_requirements: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: 3.4.0
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: '3.4'
55
95
  - !ruby/object:Gem::Dependency
56
96
  name: http
57
97
  requirement: !ruby/object:Gem::Requirement
@@ -90,6 +130,7 @@ files:
90
130
  - ".gitignore"
91
131
  - ".rspec"
92
132
  - ".travis.yml"
133
+ - ".yardopts"
93
134
  - Gemfile
94
135
  - Gemfile.lock
95
136
  - LICENSE
@@ -100,6 +141,7 @@ files:
100
141
  - ecoportal-api.gemspec
101
142
  - lib/ecoportal/api.rb
102
143
  - lib/ecoportal/api/common.rb
144
+ - lib/ecoportal/api/common/base_class.rb
103
145
  - lib/ecoportal/api/common/base_model.rb
104
146
  - lib/ecoportal/api/common/batch_operation.rb
105
147
  - lib/ecoportal/api/common/batch_response.rb
@@ -155,7 +197,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
155
197
  - !ruby/object:Gem::Version
156
198
  version: '0'
157
199
  requirements: []
158
- rubygems_version: 3.0.2
200
+ rubygems_version: 3.0.3
159
201
  signing_key:
160
202
  specification_version: 4
161
203
  summary: A collection of helpers for interacting with the ecoPortal MS's various APIs