Sha256: 797c25f396c7fe8ab2f7793ed45e5d64ffa1e14e6a32cd345d681313303ca641

Contents?: true

Size: 930 Bytes

Versions: 8

Compression:

Stored size: 930 Bytes

Contents

module Ctws
  class UsersController < CtwsController
    skip_before_action :authorize_request, only: :create
    
    # POST /signup
    # return authenticated token upon signup
    def create
      # We use Active Record's create! method so that in the event there's an error, 
      # an exception will be raised and handled in the exception handler.
      ctws_user = Ctws.user_class.create!(ctws_user_params)
      if Ctws.user_validate_with_password
        auth_token = Ctws::AuthenticateUser.new(ctws_user.email, ctws_user.password).call
      elsif !Ctws.user_validate_with_password
        auth_token = Ctws::AuthenticateUser.new(ctws_user.email).call
      end
      
      json_response(ctws_user.created_as_jsonapi({"#{ctws_user.model_name.singular}": ctws_user, token: auth_token}), :created)
    end
    
    private
    
    def ctws_user_params
      params.permit(Ctws.user_class_strong_params)
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
ctws-0.2.3.beta app/controllers/ctws/users_controller.rb
ctws-0.2.2.beta app/controllers/ctws/users_controller.rb
ctws-0.2.1.beta app/controllers/ctws/users_controller.rb
ctws-0.2.0.beta app/controllers/ctws/users_controller.rb
ctws-0.1.14.beta app/controllers/ctws/users_controller.rb
ctws-0.1.13.alpha app/controllers/ctws/users_controller.rb
ctws-0.1.12.alpha app/controllers/ctws/users_controller.rb
ctws-0.1.11.alpha app/controllers/ctws/users_controller.rb