Sha256: 63cb3419d3d75510b6687cb3fff6ad00777f5aebbe36bf8d95caff36f1efe9cd

Contents?: true

Size: 1.11 KB

Versions: 8

Compression:

Stored size: 1.11 KB

Contents

require_dependency "storytime/application_controller"

module Storytime
  class SubscriptionsController < ApplicationController
    before_action :set_subscription, only: [:destroy]

    def create
      @subscription = Storytime::Subscription.find_by(permitted_attributes) || Storytime::Subscription.new(permitted_attributes)
      @subscription.subscribed = true unless @subscription.subscribed

      if @subscription.save
        flash[:notice] = I18n.t('flash.subscriptions.create.success')
      else
        flash[:error] = I18n.t('flash.subscriptions.create.fail')
      end

      redirect_to :back
    end

    def destroy
      if params[:t] == @subscription.token
        flash[:notice] = I18n.t('flash.subscriptions.destroy.success') if @subscription.unsubscribe!
      else
        flash[:error] = I18n.t('flash.subscriptions.destroy.fail')
      end

      redirect_to "/"
    end

    private

      def permitted_attributes
        params.require(:subscription).permit(:email, :t)
      end

      def set_subscription
        @subscription = Storytime::Subscription.find_by(email: params[:email])
      end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
storytime-2.1.6 app/controllers/storytime/subscriptions_controller.rb
storytime-2.1.5 app/controllers/storytime/subscriptions_controller.rb
storytime-2.1.4 app/controllers/storytime/subscriptions_controller.rb
storytime-2.1.3 app/controllers/storytime/subscriptions_controller.rb
storytime-2.1.2 app/controllers/storytime/subscriptions_controller.rb
storytime-2.1.1 app/controllers/storytime/subscriptions_controller.rb
storytime-2.1.0 app/controllers/storytime/subscriptions_controller.rb
storytime-2.0.0 app/controllers/storytime/subscriptions_controller.rb