Sha256: ee8d1d4f91e6c7722f8b77ddbd82500093515f769549419694373dc5cd118e0d

Contents?: true

Size: 746 Bytes

Versions: 3

Compression:

Stored size: 746 Bytes

Contents

# frozen_string_literal: true

module ShoppyCartus
  class CouponsController < ApplicationController
    authorize_resource class: 'ShoppyCartus::Coupon'

    def create
      coupon = ShoppyCartus::Coupon.find_by(code: coupon_params[:code])
      return redirect_to order_items_path, alert: t('coupon.not_exist') unless coupon
      return redirect_to order_items_path, alert: t('coupon.used') if coupon.order
      @order.update(coupon: coupon)
      redirect_to order_items_path, notice: t('coupon.added')
    end

    def destroy
      @order.coupon.update(order_id: nil)
      redirect_to order_items_path, notice: t('coupon.removed')
    end

    private

    def coupon_params
      params.require(:coupon).permit(:code)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
shoppy_cartus-0.1.2 app/controllers/shoppy_cartus/coupons_controller.rb
shoppy_cartus-0.1.1 app/controllers/shoppy_cartus/coupons_controller.rb
shoppy_cartus-0.1.0 app/controllers/shoppy_cartus/coupons_controller.rb