eco-helpers 0.9.4 → 0.9.5
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8824e93753de01f752b0b655339fcc09ddf4da24dfdad76b25cadb25bed11225
|
4
|
+
data.tar.gz: 9db399712ea74e57ea62c696802f2dcf80e8fe01dd476f18edc4a938a66ca4ab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d655f7beb82c00655a86d3e75e0444d4e0eb9f233a8e8b265413384d41e50c5e985ecd0588f37fb3e45209a296f9a4a8f6d02a90bb2cea8e7d09b6da2385a509
|
7
|
+
data.tar.gz: 325555d794297d40c3bfaffb8e3f500d622b3f16c274ad71001c0b56235a2560168cd6e18ce1fdfe5284bf0c91e75c5f0127b179e425f54195191629973d5349
|
@@ -54,21 +54,37 @@ module Eco
|
|
54
54
|
@internal_entry["id"]
|
55
55
|
end
|
56
56
|
|
57
|
+
def id?
|
58
|
+
@internal_entry.key?("id")
|
59
|
+
end
|
60
|
+
|
57
61
|
# @return [String, nil] the _external id_ of this person if defined.
|
58
62
|
def external_id
|
59
63
|
@internal_entry["external_id"]
|
60
64
|
end
|
61
65
|
|
66
|
+
def external_id?
|
67
|
+
@internal_entry.key?("external_id")
|
68
|
+
end
|
69
|
+
|
62
70
|
# @return [String, nil] the _name_ of this person if defined.
|
63
71
|
def name
|
64
72
|
@internal_entry["name"]
|
65
73
|
end
|
66
74
|
|
75
|
+
def name?
|
76
|
+
@internal_entry.key?("name")
|
77
|
+
end
|
78
|
+
|
67
79
|
# @return [String, nil] the _email_ of this person if defined.
|
68
80
|
def email
|
69
81
|
@internal_entry["email"]
|
70
82
|
end
|
71
83
|
|
84
|
+
def email?
|
85
|
+
@internal_entry.key?("email")
|
86
|
+
end
|
87
|
+
|
72
88
|
# @return [String, nil] the _supervisor id_ of this person if defined.
|
73
89
|
def supervisor_id
|
74
90
|
@internal_entry["supervisor_id"]
|
@@ -78,6 +94,19 @@ module Eco
|
|
78
94
|
@internal_entry["supervisor_id"] = value
|
79
95
|
end
|
80
96
|
|
97
|
+
def supervisor_id?
|
98
|
+
@internal_entry.key?("supervisor_id")
|
99
|
+
end
|
100
|
+
|
101
|
+
def filter_tags
|
102
|
+
@internal_entry["filter_tags"]
|
103
|
+
end
|
104
|
+
|
105
|
+
def filter_tags?
|
106
|
+
@internal_entry.key?("filter_tags")
|
107
|
+
end
|
108
|
+
|
109
|
+
|
81
110
|
# Provides a reference of this person.
|
82
111
|
# @return [String] string summary of this person identity.
|
83
112
|
def to_s(options)
|
@@ -229,7 +258,8 @@ module Eco
|
|
229
258
|
return nil if !person.account
|
230
259
|
multiple = ["policy_group_ids", "filter_tags"].include?(attr)
|
231
260
|
value = person.account.send(attr)
|
232
|
-
@person_parser.serialize(:multiple, value) if multiple
|
261
|
+
value = @person_parser.serialize(:multiple, value) if multiple
|
262
|
+
value
|
233
263
|
end
|
234
264
|
|
235
265
|
def _get_from_details(person, attr)
|
@@ -296,7 +326,7 @@ module Eco
|
|
296
326
|
# @param aliased_entry [Hash] the entry with the _internal attribute_ names but the _external values_.
|
297
327
|
# @return [Hash] the `internal entry` with the **internal** attributes names and values.
|
298
328
|
def _parsed_entry(aliased_entry)
|
299
|
-
parsed = @person_parser.
|
329
|
+
parsed = @person_parser.active_attrs(aliased_entry).map do |attr|
|
300
330
|
value = @person_parser.parse(attr, aliased_entry)
|
301
331
|
[attr, value]
|
302
332
|
end.to_h
|
@@ -85,6 +85,7 @@ module Eco
|
|
85
85
|
end
|
86
86
|
|
87
87
|
# Returns a list of all the internal attributes of the model that have a parser defined & that should be active.
|
88
|
+
# @param [Hash, Array<String>]
|
88
89
|
# @return [Array<String>] list of all attribute defined parsers that should be active.
|
89
90
|
def active_attrs(source_data)
|
90
91
|
defined_attrs.select {|attr| @parsers[attr].parser_active?(source_data)}
|
@@ -18,7 +18,7 @@ module Ecoportal
|
|
18
18
|
when Internal::Account
|
19
19
|
doc["account"] = JSON.parse(value.to_json)
|
20
20
|
when Hash
|
21
|
-
doc["account"] = value.slice(*%w[policy_group_ids landing_page_id permissions_preset permissions_custom preferences prefilter filter_tags login_provider_ids starred_ids])
|
21
|
+
doc["account"] = value.slice(*%w[policy_group_ids landing_page_id permissions_preset permissions_custom preferences prefilter filter_tags default_tag login_provider_ids starred_ids])
|
22
22
|
else
|
23
23
|
# TODO
|
24
24
|
raise "Invalid set on account: Need nil, Account or Hash; got #{value.class}"
|
data/lib/eco/api/session.rb
CHANGED
@@ -2,9 +2,13 @@ module Eco
|
|
2
2
|
module API
|
3
3
|
class Session < Common::Session::BaseSession
|
4
4
|
attr_reader :batch
|
5
|
-
attr_reader :usecases
|
6
5
|
attr_accessor :schema
|
7
6
|
|
7
|
+
# Class to manage the current session.
|
8
|
+
# Central helper of resources.
|
9
|
+
#
|
10
|
+
# @attr_reader batch [Eco::API::Session::Batch] provides helper to launch batch operations.
|
11
|
+
# @attr_reader schema [Ecoportal::API::V1::PersonSchema] currently active schema.
|
8
12
|
def initialize(init = {})
|
9
13
|
e = init
|
10
14
|
msg = "Expected object Eco::API::Session::Config or Eco::API::Common::Session::Environment. Given: #{init}"
|
@@ -29,7 +33,8 @@ module Eco
|
|
29
33
|
})
|
30
34
|
end
|
31
35
|
|
32
|
-
#
|
36
|
+
# Helper to perform multiple operations in one go.
|
37
|
+
# @return [Eco::API::Session::Task] provides shortcuts to manage certain kind of operations.
|
33
38
|
def do
|
34
39
|
@task
|
35
40
|
end
|
@@ -52,18 +57,24 @@ module Eco
|
|
52
57
|
end
|
53
58
|
end
|
54
59
|
|
60
|
+
# @see Eco::API::Session::Config#policy_groups
|
55
61
|
def policy_groups
|
56
62
|
config.policy_groups
|
57
63
|
end
|
58
64
|
|
65
|
+
# @see Eco::API::Session::Config#tagtree
|
59
66
|
def tagtree
|
60
67
|
config.tagtree(enviro: enviro)
|
61
68
|
end
|
62
69
|
|
70
|
+
# @see Eco::API::Session::Config#schemas
|
63
71
|
def schemas
|
64
72
|
config.schemas
|
65
73
|
end
|
66
74
|
|
75
|
+
# Sets the current target `PersonSchema` of this session.
|
76
|
+
# @note observe that it is essential for the parsers/serialisers to identify target/present attributes.
|
77
|
+
# @param schema [String, Ecoportal::API::V1::PersonSchema] where `String` can be the _name_ or the _id_ of the schema.
|
67
78
|
def schema=(value)
|
68
79
|
case value
|
69
80
|
when String
|
@@ -97,6 +108,10 @@ module Eco
|
|
97
108
|
self
|
98
109
|
end
|
99
110
|
|
111
|
+
# Builds the presets using the usergroup ids of the input.
|
112
|
+
# @note for each flag/ability it will take the highest among those mapped for the present usergroups.
|
113
|
+
# @param [Ecoportal::API::Internal::Person, Array<String>] the array should be of usegroup names or ids.
|
114
|
+
# @return [Hash] with custom presets.
|
100
115
|
def new_preset(input)
|
101
116
|
case input
|
102
117
|
when Ecoportal::API::Internal::Person
|
@@ -112,24 +127,38 @@ module Eco
|
|
112
127
|
@entry_factory.export(*args)
|
113
128
|
end
|
114
129
|
|
130
|
+
# @see Eco::API::Common::People::EntryFactory#new
|
131
|
+
# @return [Ecoportal::API::Internal::Person]
|
115
132
|
def new_person(**keyed_args)
|
116
133
|
@person_factory.new(**keyed_args)
|
117
134
|
end
|
118
135
|
|
136
|
+
# Builds the entry for the given data.
|
137
|
+
# @see Eco::API::Common::People::EntryFactory#new
|
138
|
+
# @return [Eco::API::Common::People::PersonEntry] parsed entry.
|
119
139
|
def new_entry(data, dependencies: {})
|
120
140
|
@entry_factory.new(data, dependencies: dependencies)
|
121
141
|
end
|
122
142
|
|
143
|
+
# @see Eco::API::Common::People::EntryFactory#entries
|
144
|
+
# @return [Eco::API::Common::People::Entries] collection of entries.
|
123
145
|
def entries(*args)
|
124
146
|
@entry_factory.entries(*args).tap do |collection|
|
125
147
|
logger.info("Loaded #{collection.length} input entries.")
|
126
148
|
end
|
127
149
|
end
|
128
150
|
|
151
|
+
# Generates an entries collection from a csv input file.
|
152
|
+
# @see Eco::API::Common::People::EntryFactory#entries
|
153
|
+
# @param file [String] file to generate the entries from.
|
154
|
+
# @return [Eco::API::Common::People::Entries] collection of entries.
|
129
155
|
def csv_entries(file)
|
130
156
|
return entries(file: file, format: :csv)
|
131
157
|
end
|
132
158
|
|
159
|
+
# Generates the collection of entries that should be discarded from an update.
|
160
|
+
# @note requires `session.config.people.discarded_file` to be defined.
|
161
|
+
# @return [Eco::API::Common::People::Entries] collection of entries.
|
133
162
|
def discarded_entries
|
134
163
|
return @discarded_entries if instance_variable_defined?(:@discarded_entries)
|
135
164
|
file = config.people.discarded_file
|
data/lib/eco/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eco-helpers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oscar Segura
|
@@ -396,7 +396,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
396
396
|
- !ruby/object:Gem::Version
|
397
397
|
version: '0'
|
398
398
|
requirements: []
|
399
|
-
rubygems_version: 3.0.
|
399
|
+
rubygems_version: 3.0.4
|
400
400
|
signing_key:
|
401
401
|
specification_version: 4
|
402
402
|
summary: eco-helpers to manage people api cases
|