Sha256: e1ebab1c62ac39111bd885cf2f5327f2579a1319d8bdb27395cd6d703edada61

Contents?: true

Size: 1.64 KB

Versions: 4

Compression:

Stored size: 1.64 KB

Contents

module Spree
  module Admin
    class WebhooksSubscribersController < ResourceController
      create.before :process_subscriptions
      update.before :process_subscriptions

      def index
        params[:q] ||= {}
        params[:q][:s] ||= 'created_at desc'

        search = Webhooks::Subscriber.ransack(params[:q])
        @webhooks_subscribers = search.result.
                                includes(:events).
                                page(params[:page]).
                                per(params[:per_page])
      end

      def show
        @webhooks_subscriber = Webhooks::Subscriber.find(params[:id])
        @events = @webhooks_subscriber.events.order(created_at: :desc).page(params[:page]).per(params[:per_page])
      end

      private

      def resource
        @resource ||= Spree::Admin::Resource.new 'spree/admin/webhooks/subscribers', 'subscribers', nil
      end

      def process_subscriptions
        params[:webhooks_subscriber][:subscriptions] = if params[:subscribe_to_all_events] == 'true'
                                                         ['*']
                                                       else
                                                         selected_events
                                                       end

        params[:webhooks_subscriber] = params[:webhooks_subscriber].except(*supported_events.keys)
      end

      def selected_events
        supported_events.select { |resource, _events| params[:webhooks_subscriber][resource] == 'true' }.values.flatten
      end

      def supported_events
        @supported_events ||= Spree::Webhooks::Subscriber.supported_events
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
spree_backend-4.4.1 app/controllers/spree/admin/webhooks_subscribers_controller.rb
spree_backend-4.4.0 app/controllers/spree/admin/webhooks_subscribers_controller.rb
spree_backend-4.4.0.rc2 app/controllers/spree/admin/webhooks_subscribers_controller.rb
spree_backend-4.4.0.rc1 app/controllers/spree/admin/webhooks_subscribers_controller.rb