lib/checkoff/internal/task_hashes.rb in checkoff-0.175.0 vs lib/checkoff/internal/task_hashes.rb in checkoff-0.176.0

- old
+ new

@@ -10,11 +10,11 @@ def task_to_h(task) # @type [Hash] task_hash = task.to_h task_hash['unwrapped'] = {} unwrap_custom_fields(task_hash) - unwrap_memberships(task_hash) + unwrap_all_memberships(task_hash) task_hash['task'] = task.name task_hash end # @param task_data [Hash] @@ -37,33 +37,54 @@ cf['name'] end.transform_values(&:first) task_hash['unwrapped']['custom_fields'] = unwrapped_custom_fields end + # @param [Hash<String, Hash, Array>] task_hash + # @param [Array<Hash>] memberships + # + # @return [void] + def add_user_task_list(task_hash, memberships) + return unless task_hash.key? 'assignee_section' + + assignee_section = task_hash.fetch('assignee_section') + # @type [Hash] + assignee = task_hash.fetch('assignee') + memberships << { + 'section' => assignee_section.dup, + 'project' => { + 'gid' => assignee.fetch('gid'), + 'name' => :my_tasks, + }, + } + end + # @param task_hash [Hash] # @param resource [String] + # @param memberships [Array<Hash>] # @param key [String] # # @return [void] - def unwrap_membership(task_hash, resource, key) + def unwrap_memberships(task_hash, memberships, resource, key) # @sg-ignore - # @type [Array<Hash>] - memberships = task_hash.fetch('memberships', []) - # @sg-ignore # @type [Hash] unwrapped = task_hash.fetch('unwrapped') unwrapped["membership_by_#{resource}_#{key}"] = memberships.group_by do |membership| membership[resource][key] end.transform_values(&:first) end # @param task_hash [Hash] # @return [void] - def unwrap_memberships(task_hash) - unwrap_membership(task_hash, 'section', 'gid') - unwrap_membership(task_hash, 'section', 'name') - unwrap_membership(task_hash, 'project', 'gid') - unwrap_membership(task_hash, 'project', 'name') + def unwrap_all_memberships(task_hash) + # @sg-ignore + # @type [Array<Hash>] + memberships = task_hash.fetch('memberships', []).dup + add_user_task_list(task_hash, memberships) + unwrap_memberships(task_hash, memberships, 'section', 'gid') + unwrap_memberships(task_hash, memberships, 'section', 'name') + unwrap_memberships(task_hash, memberships, 'project', 'gid') + unwrap_memberships(task_hash, memberships, 'project', 'name') end end end end