PageRenderTime 1141ms CodeModel.GetById 0ms RepoModel.GetById 0ms app.codeStats 0ms

/api/app/controllers/spree/api/properties_controller.rb

https://github.com/tomz/spree
Ruby | 70 lines | 58 code | 12 blank | 0 comment | 4 complexity | 80289a56b94c326853be1e78a038f324 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. module Spree
  2. module Api
  3. class PropertiesController < Spree::Api::BaseController
  4. before_filter :find_property, only: [:show, :update, :destroy]
  5. def index
  6. @properties = Spree::Property.accessible_by(current_ability, :read)
  7. if params[:ids]
  8. @properties = @properties.where(:id => params[:ids].split(","))
  9. else
  10. @properties = @properties.ransack(params[:q]).result
  11. end
  12. @properties = @properties.page(params[:page]).per(params[:per_page])
  13. respond_with(@properties)
  14. end
  15. def show
  16. respond_with(@property)
  17. end
  18. def new
  19. end
  20. def create
  21. authorize! :create, Property
  22. @property = Spree::Property.new(property_params)
  23. if @property.save
  24. respond_with(@property, status: 201, default_template: :show)
  25. else
  26. invalid_resource!(@property)
  27. end
  28. end
  29. def update
  30. if @property
  31. authorize! :update, @property
  32. @property.update_attributes(property_params)
  33. respond_with(@property, status: 200, default_template: :show)
  34. else
  35. invalid_resource!(@property)
  36. end
  37. end
  38. def destroy
  39. if @property
  40. authorize! :destroy, @property
  41. @property.destroy
  42. respond_with(@property, status: 204)
  43. else
  44. invalid_resource!(@property)
  45. end
  46. end
  47. private
  48. def find_property
  49. @property = Spree::Property.accessible_by(current_ability, :read).find(params[:id])
  50. rescue ActiveRecord::RecordNotFound
  51. @property = Spree::Property.accessible_by(current_ability, :read).find_by!(name: params[:id])
  52. end
  53. def property_params
  54. params.require(:property).permit(permitted_property_attributes)
  55. end
  56. end
  57. end
  58. end