Sha256: 2542265289afcc6aecb6d09b07898cae0d6cee2d204628c5bc3496b50b677ce3

Contents?: true

Size: 982 Bytes

Versions: 30

Compression:

Stored size: 982 Bytes

Contents

# frozen_string_literal: true

module Decidim
  # This class manages the creation and deletion of user notifications

  class NotificationsSubscriptionsPersistor
    attr_reader :user

    def initialize(user)
      @user = user
    end

    def add_subscription(params)
      subscriptions = user.notification_settings["subscriptions"] || {}
      filtered_params = filter_params(params)
      new_subscription = { filtered_params[:auth] => filtered_params }
      user.notification_settings["subscriptions"] = subscriptions.merge(new_subscription)
      user.save
    end

    def delete_subscription(auth_key)
      subscriptions = user.notification_settings["subscriptions"] || {}
      user.notification_settings["subscriptions"] = subscriptions.except(auth_key)
      user.save
    end

    private

    def filter_params(params)
      {
        auth: params[:keys][:auth],
        p256dh: params[:keys][:p256dh],
        endpoint: params[:endpoint]
      }
    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
decidim-core-0.30.0.rc3 app/services/decidim/notifications_subscriptions_persistor.rb
decidim-core-0.30.0.rc2 app/services/decidim/notifications_subscriptions_persistor.rb
decidim-core-0.30.0.rc1 app/services/decidim/notifications_subscriptions_persistor.rb
decidim-core-0.29.2 app/services/decidim/notifications_subscriptions_persistor.rb
decidim-core-0.28.5 app/services/decidim/notifications_subscriptions_persistor.rb
decidim-core-0.29.1 app/services/decidim/notifications_subscriptions_persistor.rb
decidim-core-0.28.4 app/services/decidim/notifications_subscriptions_persistor.rb
decidim-core-0.27.9 app/services/decidim/notifications_subscriptions_persistor.rb
decidim-core-0.29.0 app/services/decidim/notifications_subscriptions_persistor.rb
decidim-core-0.28.3 app/services/decidim/notifications_subscriptions_persistor.rb
decidim-core-0.27.8 app/services/decidim/notifications_subscriptions_persistor.rb
decidim-core-0.29.0.rc4 app/services/decidim/notifications_subscriptions_persistor.rb
decidim-core-0.29.0.rc3 app/services/decidim/notifications_subscriptions_persistor.rb
decidim-core-0.29.0.rc2 app/services/decidim/notifications_subscriptions_persistor.rb
decidim-core-0.29.0.rc1 app/services/decidim/notifications_subscriptions_persistor.rb
decidim-core-0.28.2 app/services/decidim/notifications_subscriptions_persistor.rb
decidim-core-0.27.7 app/services/decidim/notifications_subscriptions_persistor.rb
decidim-core-0.28.1 app/services/decidim/notifications_subscriptions_persistor.rb
decidim-core-0.27.6 app/services/decidim/notifications_subscriptions_persistor.rb
decidim-core-0.28.0 app/services/decidim/notifications_subscriptions_persistor.rb