Sha256: 9dbf65c6da3d89b245da94d3adc244f229a451cccde98d6edfc72c0ff1955b88
Contents?: true
Size: 1.41 KB
Versions: 1
Compression:
Stored size: 1.41 KB
Contents
module Spree module Api class ProductsController < Spree::Api::BaseController respond_to :json def index @products = product_scope.ransack(params[:q]).result.page(params[:page]).per(params[:per_page]) respond_with(@products) end def show @product = find_product(params[:id]) respond_with(@product) end def new end def create authorize! :create, Product params[:product][:available_on] ||= Time.now @product = Product.new(params[:product]) begin if @product.save respond_with(@product, :status => 201, :default_template => :show) else invalid_resource!(@product) end rescue ActiveRecord::RecordNotUnique retry end end def update authorize! :update, Product @product = find_product(params[:id]) if @product.update_attributes(params[:product]) respond_with(@product, :status => 200, :default_template => :show) else invalid_resource!(@product) end end def destroy authorize! :delete, Product @product = find_product(params[:id]) @product.update_attribute(:deleted_at, Time.now) @product.variants_including_master.update_all(:deleted_at => Time.now) respond_with(@product, :status => 204) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
spree_api-1.3.4 | app/controllers/spree/api/products_controller.rb |