about summary refs log tree commit diff
path: root/db/post_migrate/20190927124642_remove_invalid_web_push_subscription.rb
blob: c2397476ad0749408d742605d4b53d1184f38f0e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# frozen_string_literal: true

class RemoveInvalidWebPushSubscription < ActiveRecord::Migration[5.2]
  disable_ddl_transaction!

  def up
    invalid_web_push_subscriptions = Web::PushSubscription.where(endpoint: '')
                                                          .or(Web::PushSubscription.where(key_p256dh: ''))
                                                          .or(Web::PushSubscription.where(key_auth: ''))
                                                          .preload(:session_activation)
    invalid_web_push_subscriptions.find_each do |web_push_subscription|
      web_push_subscription.session_activation&.update!(web_push_subscription_id: nil)
      web_push_subscription.destroy!
    end
  end

  def down; end
end