PageRenderTime 1314ms CodeModel.GetById 0ms RepoModel.GetById 1ms app.codeStats 0ms

/api/app/controllers/spree/api/zones_controller.rb

https://github.com/tomz/spree
Ruby | 46 lines | 39 code | 7 blank | 0 comment | 2 complexity | 8f8a04f0042f92e1eb7fd7702a822184 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. module Spree
  2. module Api
  3. class ZonesController < Spree::Api::BaseController
  4. def create
  5. authorize! :create, Zone
  6. @zone = Zone.new(map_nested_attributes_keys(Spree::Zone, params[:zone]))
  7. if @zone.save
  8. respond_with(@zone, :status => 201, :default_template => :show)
  9. else
  10. invalid_resource!(@zone)
  11. end
  12. end
  13. def destroy
  14. authorize! :destroy, zone
  15. zone.destroy
  16. respond_with(zone, :status => 204)
  17. end
  18. def index
  19. @zones = Zone.accessible_by(current_ability, :read).order('name ASC').ransack(params[:q]).result.page(params[:page]).per(params[:per_page])
  20. respond_with(@zones)
  21. end
  22. def show
  23. respond_with(zone)
  24. end
  25. def update
  26. authorize! :update, zone
  27. if zone.update_attributes(map_nested_attributes_keys(Spree::Zone, params[:zone]))
  28. respond_with(zone, :status => 200, :default_template => :show)
  29. else
  30. invalid_resource!(zone)
  31. end
  32. end
  33. private
  34. def zone
  35. @zone ||= Spree::Zone.accessible_by(current_ability, :read).find(params[:id])
  36. end
  37. end
  38. end
  39. end