# frozen_string_literal: true
namespace :decidim_anonymous_proposals do
desc "Create anonymous groups for organizations" task :generate_anonymous_group, [:name, :nickname, :email, :organization_id] => :environment do |_, args| organizations = args.organization_id.present? ? Decidim::Organization.where(id: args.organization_id) : Decidim::Organization.all organizations.each do |organization| if Decidim::UserGroup.where(organization: organization).anonymous.exists? && (update_args = args.to_h.slice(:name, :nickname, :email)).present? Decidim::UserGroup.where(organization: organization).anonymous.first.update(update_args) else Decidim::UserGroup.where(organization: organization).create( name: args.name || "Anonymous", nickname: args.nickname || "anonymous", email: args.email || "anonymous@example.org", extended_data: { anonymous: true } ) end end end
end