Bring spree/api/taxons controller from spree_api as it is needed in OFN admin

This commit is contained in:
luisramos0
2019-07-18 18:18:15 +01:00
parent f77beb50ff
commit b70cfa5968

View File

@@ -0,0 +1,77 @@
module Spree
module Api
class TaxonsController < Spree::Api::BaseController
respond_to :json
def index
if taxonomy
@taxons = taxonomy.root.children
else
if params[:ids]
@taxons = Taxon.where(:id => params[:ids].split(","))
else
@taxons = Taxon.ransack(params[:q]).result
end
end
respond_with(@taxons)
end
def show
@taxon = taxon
respond_with(@taxon)
end
def jstree
show
end
def create
authorize! :create, Taxon
@taxon = Taxon.new(params[:taxon])
@taxon.taxonomy_id = params[:taxonomy_id]
taxonomy = Taxonomy.find_by_id(params[:taxonomy_id])
if taxonomy.nil?
@taxon.errors[:taxonomy_id] = I18n.t(:invalid_taxonomy_id, :scope => 'spree.api')
invalid_resource!(@taxon) and return
end
@taxon.parent_id = taxonomy.root.id unless params[:taxon][:parent_id]
if @taxon.save
respond_with(@taxon, :status => 201, :default_template => :show)
else
invalid_resource!(@taxon)
end
end
def update
authorize! :update, Taxon
if taxon.update_attributes(params[:taxon])
respond_with(taxon, :status => 200, :default_template => :show)
else
invalid_resource!(taxon)
end
end
def destroy
authorize! :delete, Taxon
taxon.destroy
respond_with(taxon, :status => 204)
end
private
def taxonomy
if params[:taxonomy_id].present?
@taxonomy ||= Taxonomy.find(params[:taxonomy_id])
end
end
def taxon
@taxon ||= taxonomy.taxons.find(params[:id])
end
end
end
end