Sha256: 05fda149ce7ffc754354b82dc3a85f64aad84030b354c131a2ff42985be616f0

Contents?: true

Size: 1.36 KB

Versions: 36

Compression:

Stored size: 1.36 KB

Contents

module Spree
  module Api
    module V2
      module Storefront
        class AccountController < ::Spree::Api::V2::ResourceController
          before_action :require_spree_current_user, except: :create

          def create
            result = create_service.call(user_params: user_create_params)
            render_result(result)
          end

          def update
            spree_authorize! :update, spree_current_user
            result = update_service.call(user: spree_current_user, user_params: user_update_params)
            render_result(result)
          end

          private

          def resource
            spree_current_user
          end

          def resource_serializer
            Spree::Api::Dependencies.storefront_user_serializer.constantize
          end

          def model_class
            Spree.user_class
          end

          def create_service
            Spree::Api::Dependencies.storefront_account_create_service.constantize
          end

          def update_service
            Spree::Api::Dependencies.storefront_account_update_service.constantize
          end

          def user_create_params
            user_update_params.except(:bill_address_id, :ship_address_id)
          end

          def user_update_params
            params.require(:user).permit(permitted_user_attributes)
          end
        end
      end
    end
  end
end

Version data entries

36 entries across 36 versions & 3 rubygems

Version Path
spree_api-4.10.1 app/controllers/spree/api/v2/storefront/account_controller.rb
spree_api-4.10.0 app/controllers/spree/api/v2/storefront/account_controller.rb
spree_api-4.9.0 app/controllers/spree/api/v2/storefront/account_controller.rb
spree_api-4.8.3 app/controllers/spree/api/v2/storefront/account_controller.rb
spree_api-4.8.2 app/controllers/spree/api/v2/storefront/account_controller.rb
spree_api-4.7.3 app/controllers/spree/api/v2/storefront/account_controller.rb
spree_api-4.6.6 app/controllers/spree/api/v2/storefront/account_controller.rb
spree_api-4.5.5 app/controllers/spree/api/v2/storefront/account_controller.rb
spree_api-4.3.3 app/controllers/spree/api/v2/storefront/account_controller.rb
spree_api-4.4.1 app/controllers/spree/api/v2/storefront/account_controller.rb
spree_api-4.5.4 app/controllers/spree/api/v2/storefront/account_controller.rb
spree_api-4.6.5 app/controllers/spree/api/v2/storefront/account_controller.rb
spree_api-4.7.2 app/controllers/spree/api/v2/storefront/account_controller.rb
spree_api-4.7.1 app/controllers/spree/api/v2/storefront/account_controller.rb
spree_api-4.6.4 app/controllers/spree/api/v2/storefront/account_controller.rb
spree_api-4.7.0 app/controllers/spree/api/v2/storefront/account_controller.rb
spree_api-4.6.3 app/controllers/spree/api/v2/storefront/account_controller.rb
spree_api-4.6.2 app/controllers/spree/api/v2/storefront/account_controller.rb
spree_api-4.6.1 app/controllers/spree/api/v2/storefront/account_controller.rb
spree_api-4.6.0 app/controllers/spree/api/v2/storefront/account_controller.rb