Class: Eco::API::Common::People::DefaultParsers::PolicyGroupsParser
- Inherits:
-
Loaders::Parser
- Object
- Loaders::Base
- Loaders::CaseBase
- Loaders::Parser
- Eco::API::Common::People::DefaultParsers::PolicyGroupsParser
- Defined in:
- lib/eco/api/common/people/default_parsers/policy_groups_parser.rb
Instance Attribute Summary
Attributes included from Language::AuxiliarLogger
Instance Method Summary collapse
Methods inherited from Loaders::Parser
active_when_all, active_when_any, #attribute, attribute, dependencies, #initialize, parsing_phase, serializing_phase
Methods inherited from Loaders::CaseBase
Methods inherited from Loaders::Base
<=>, created_at, #initialize, set_created_at!
Methods included from ClassHelpers
#class_resolver, #descendants, #descendants?, #inheritable_attrs, #inheritable_class_vars, #inherited, #instance_variable_name, #new_class, #resolve_class, #to_constant
Methods included from Language::AuxiliarLogger
Constructor Details
This class inherits a constructor from Eco::API::Common::Loaders::Parser
Instance Method Details
#parser(hash, _deps) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/eco/api/common/people/default_parsers/policy_groups_parser.rb', line 5 def parser(hash, _deps) policy_group_ids = hash["policy_group_ids"] || [] policy_group_ids.map do |name| policy_groups.to_id(name&.downcase&.strip).tap do |known| unless !name || known || unknown_pgs.include?(name) unknown_pgs.push(name) log(:warn) { "Unknown Policy Group: '#{name}'" } end end end.compact.tap do |pg_names| pg_names.push(default_id) if pg_names.empty? end end |
#serializer(person, _deps) ⇒ Object
19 20 21 22 23 24 |
# File 'lib/eco/api/common/people/default_parsers/policy_groups_parser.rb', line 19 def serializer(person, _deps) ids = person&.account&.policy_group_ids || [] ids.map do |id| policy_groups.to_name(id) end.compact end |