Sha256: c5373c3e99b0eb80d4ec0c799b7a975ee178af2326be485cead4d58074893a0d

Contents?: true

Size: 1.1 KB

Versions: 47

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true

class FixBlockedUserNamesInActionLog < ActiveRecord::Migration[6.0]
  def change
    reversible do |dir|
      dir.up do
        execute_query(
          update_query(
            "coalesce(decidim_users.extended_data->>'user_name', decidim_users.name)"
          )
        )
      end

      dir.down do
        execute_query(update_query("'Blocked user'::text"))
      end
    end
  end

  private

  def update_query(user_name_replacement)
    <<~SQL.squish
      UPDATE decidim_action_logs
        SET extra = jsonb_set(
          decidim_action_logs.extra,
          '{resource,title}',
          to_jsonb(#{user_name_replacement})
        )
        FROM decidim_users
        WHERE decidim_users.id = decidim_action_logs.resource_id
        AND decidim_action_logs.resource_type = $1 AND decidim_action_logs.action = $2
    SQL
  end

  def execute_query(query)
    rawconn.prepare("statement1", query)
    rawconn.exec_prepared("statement1", ["Decidim::User", "block"])
    rawconn.exec("DEALLOCATE statement1")
  end

  def rawconn
    ActiveRecord::Base.connection.raw_connection
  end
end

Version data entries

47 entries across 47 versions & 1 rubygems

Version Path
decidim-core-0.30.0.rc1 db/migrate/20210629172525_fix_blocked_user_names_in_action_log.rb
decidim-core-0.29.2 db/migrate/20210629172525_fix_blocked_user_names_in_action_log.rb
decidim-core-0.28.5 db/migrate/20210629172525_fix_blocked_user_names_in_action_log.rb
decidim-core-0.29.1 db/migrate/20210629172525_fix_blocked_user_names_in_action_log.rb
decidim-core-0.28.4 db/migrate/20210629172525_fix_blocked_user_names_in_action_log.rb
decidim-core-0.27.9 db/migrate/20210629172525_fix_blocked_user_names_in_action_log.rb
decidim-core-0.29.0 db/migrate/20210629172525_fix_blocked_user_names_in_action_log.rb
decidim-core-0.28.3 db/migrate/20210629172525_fix_blocked_user_names_in_action_log.rb
decidim-core-0.27.8 db/migrate/20210629172525_fix_blocked_user_names_in_action_log.rb
decidim-core-0.29.0.rc4 db/migrate/20210629172525_fix_blocked_user_names_in_action_log.rb
decidim-core-0.29.0.rc3 db/migrate/20210629172525_fix_blocked_user_names_in_action_log.rb
decidim-core-0.29.0.rc2 db/migrate/20210629172525_fix_blocked_user_names_in_action_log.rb
decidim-core-0.29.0.rc1 db/migrate/20210629172525_fix_blocked_user_names_in_action_log.rb
decidim-core-0.28.2 db/migrate/20210629172525_fix_blocked_user_names_in_action_log.rb
decidim-core-0.27.7 db/migrate/20210629172525_fix_blocked_user_names_in_action_log.rb
decidim-core-0.28.1 db/migrate/20210629172525_fix_blocked_user_names_in_action_log.rb
decidim-core-0.27.6 db/migrate/20210629172525_fix_blocked_user_names_in_action_log.rb
decidim-core-0.26.10 db/migrate/20210629172525_fix_blocked_user_names_in_action_log.rb
decidim-core-0.26.9 db/migrate/20210629172525_fix_blocked_user_names_in_action_log.rb
decidim-core-0.28.0 db/migrate/20210629172525_fix_blocked_user_names_in_action_log.rb