PageRenderTime 2189ms CodeModel.GetById 32ms RepoModel.GetById 3ms app.codeStats 0ms

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

https://github.com/fig/spree
Ruby | 67 lines | 56 code | 11 blank | 0 comment | 3 complexity | e203803da9df9fbc959a4e82ff2dacca MD5 | raw file
Possible License(s): BSD-3-Clause
  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)
  8. @users = if params[:ids]
  9. @users.ransack(id_in: params[:ids].split(','))
  10. else
  11. @users.ransack(params[:q])
  12. end
  13. @users = @users.result.page(params[:page]).per(params[:per_page])
  14. expires_in 15.minutes, public: true
  15. headers['Surrogate-Control'] = "max-age=#{15.minutes}"
  16. respond_with(@users)
  17. end
  18. def show
  19. respond_with(user)
  20. end
  21. def new; end
  22. def create
  23. authorize! :create, Spree.user_class
  24. @user = Spree.user_class.new(user_params)
  25. if @user.save
  26. respond_with(@user, status: 201, default_template: :show)
  27. else
  28. invalid_resource!(@user)
  29. end
  30. end
  31. def update
  32. authorize! :update, user
  33. if user.update_attributes(user_params)
  34. respond_with(user, status: 200, default_template: :show)
  35. else
  36. invalid_resource!(user)
  37. end
  38. end
  39. def destroy
  40. authorize! :destroy, user
  41. user.destroy
  42. respond_with(user, status: 204)
  43. end
  44. private
  45. def user
  46. @user ||= Spree.user_class.accessible_by(current_ability, :read).find(params[:id])
  47. end
  48. def user_params
  49. params.require(:user).permit(permitted_user_attributes |
  50. [bill_address_attributes: permitted_address_attributes,
  51. ship_address_attributes: permitted_address_attributes])
  52. end
  53. end
  54. end
  55. end
  56. end