PageRenderTime 1293ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

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

https://gitlab.com/shinvdu/spree
Ruby | 60 lines | 49 code | 11 blank | 0 comment | 2 complexity | e59972b79a71dbb575c7474237a1e474 MD5 | raw file
  1. module Spree
  2. module Api
  3. module V1
  4. class UsersController < Spree::Api::BaseController
  5. rescue_from Spree::Core::DestroyWithOrdersError, with: :error_during_processing
  6. def index
  7. @users = Spree.user_class.accessible_by(current_ability,:read).ransack(params[:q]).result.page(params[:page]).per(params[:per_page])
  8. respond_with(@users)
  9. end
  10. def show
  11. respond_with(user)
  12. end
  13. def new
  14. end
  15. def create
  16. authorize! :create, Spree.user_class
  17. @user = Spree.user_class.new(user_params)
  18. if @user.save
  19. respond_with(@user, status: 201, default_template: :show)
  20. else
  21. invalid_resource!(@user)
  22. end
  23. end
  24. def update
  25. authorize! :update, user
  26. if user.update_attributes(user_params)
  27. respond_with(user, status: 200, default_template: :show)
  28. else
  29. invalid_resource!(user)
  30. end
  31. end
  32. def destroy
  33. authorize! :destroy, user
  34. user.destroy
  35. respond_with(user, status: 204)
  36. end
  37. private
  38. def user
  39. @user ||= Spree.user_class.accessible_by(current_ability, :read).find(params[:id])
  40. end
  41. def user_params
  42. params.require(:user).permit(permitted_user_attributes |
  43. [bill_address_attributes: permitted_address_attributes,
  44. ship_address_attributes: permitted_address_attributes])
  45. end
  46. end
  47. end
  48. end
  49. end