Sha256: 16c4990d3e6dafebf099aae8594bd303b0fbcb088d00e2dee3b44783dc8645e5

Contents?: true

Size: 1.52 KB

Versions: 1

Compression:

Stored size: 1.52 KB

Contents

module Spree
  module Api
    module V1
      class VendorsController < Spree::Api::BaseController
        def index
          @vendors = if params[:ids].present?
                       scope.where(id: params[:ids].split(','))
                     else
                       scope.load.ransack(
                         params[:q]
                       ).result
                     end
          respond_with(@vendors)
        end

        def show
          @vendor = scope.find(params[:id])
          authorize! :show, @vendor
          respond_with(@vendor)
        end

        def create
          spree_authorize! :create, Spree::Vendor
          @vendor = Spree::Vendor.new(vendor_params)
          if @vendor.save
            #render :show, status: 201
          else
            invalid_resource!(@vendor)
          end
          #render_order()
        end

        def update
          @vendor = scope.find(params[:id])
          authorize! :update, @vendor
          if @vendor.update(vendor_params)
            render :show
          else
            invalid_resource!(@vendor)
          end
        end

        def destroy
          @vendor = scope.find(params[:id])
          authorize! :destroy, @vendor
          @vendor.destroy
          render plain: nil, status: 204
        end

        private

        def scope
          Spree::Vendor.accessible_by(current_ability)
        end

        def vendor_params
          params.require(:vendor).permit(Spree::PermittedAttributes.vendor_attributes)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
atkhayar-dev-spree-multi-vendor-0.0.0 app/controllers/spree/api/v1/vendors_controller.rb