module Eco module API module Common module People class DefaultParsers class PolicyGroupsParser < People::BaseParser def process @parsers.define_attribute("policy_group_ids") do |parser| parser.def_parser do |columns_hash| policy_group_ids = [] if policy_ids = columns_hash["policy_group_ids"] policy_group_ids = policy_ids.split("|").map do |name| policy_groups.to_id(name&.downcase.strip) end.compact end policy_group_ids.empty?? default_id : policy_group_ids.join("|") end.def_serializer do |person| ids = person&.account&.policy_group_ids || [] ids.map do |id| policy_groups.to_name(id) end.compact.join("|") end end end private def policy_groups @policy_groups ||= ASSETS.config.policy_groups end def default_id @default_id ||= policy_groups.to_id(ASSETS.config.people.default_usergroup) end end end end end end end