diff options
Diffstat (limited to 'app/serializers/group_child_serializer.rb')
-rw-r--r-- | app/serializers/group_child_serializer.rb | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/app/serializers/group_child_serializer.rb b/app/serializers/group_child_serializer.rb index 789707c2c9b..54e65752163 100644 --- a/app/serializers/group_child_serializer.rb +++ b/app/serializers/group_child_serializer.rb @@ -39,12 +39,13 @@ class GroupChildSerializer < BaseSerializer def represent_hierarchy(hierarchy, opts) serializer = self.class.new(params) - if hierarchy.is_a?(Hash) + case hierarchy + when Hash hierarchy.map do |parent, children| serializer.represent(parent, opts) .merge(children: Array.wrap(serializer.represent_hierarchy(children, opts))) end - elsif hierarchy.is_a?(Array) + when Array hierarchy.flat_map { |child| serializer.represent_hierarchy(child, opts) } else serializer.represent(hierarchy, opts) |