PageRenderTime 1774ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

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

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