Sha256: 409d0e8edad9090bade45f90108eaebfbe0c0f1ff07ee52b81d3eb2762dd078e
Contents?: true
Size: 748 Bytes
Versions: 3
Compression:
Stored size: 748 Bytes
Contents
module ShoppingCart class UpdateOrder < Rectify::Command def initialize(order, params) @order = order @params = params end def call return broadcast(:invalid) if @order.invalid? transaction do join_coupon update_order end broadcast :ok end private def join_coupon coupon = Coupon.find_by(code: coupon_code) return unless coupon @order.coupon = coupon end def update_order @order.update(order_params) end def order_params @params.require(:order) .permit(:id, order_items_attributes: [:id, :quantity]) end def coupon_code @params[:order][:coupon][:code] unless @order.coupon end end end
Version data entries
3 entries across 3 versions & 1 rubygems