Update UsersController

Adds registration, check_email, and check_username methods
This commit is contained in:
Justin Edmund 2020-09-25 10:53:56 -07:00
parent 2c9c6de915
commit 12a98d4abd
2 changed files with 42 additions and 6 deletions

View file

@ -1,12 +1,45 @@
class Api::V1::UsersController < Api::V1::ApiController
class ForbiddenError < StandardError; end
def create
@user = User.new(user_params)
render :create, status: :created if @user.save!
token = Doorkeeper::AccessToken.create!(
application_id: nil,
resource_owner_id: @user.id,
expires_in: 30.days,
scopes: 'public'
).token
if @user.save!
@presenter = {
user_id: @user.id,
username: @user.username,
token: token
}
render :create, status: :created
end
end
def email_available
@available = User.where("email = ?", params[:email]).count == 0
render :email_available
def check_email
if params[:email].present?
@available = User.where("email = ?", params[:email]).count == 0
else
@available = false
end
render :available
end
def check_username
if params[:username].present?
@available = User.where("username = ?", params[:username]).count == 0
else
@available = false
end
render :available
end
def show

View file

@ -3,12 +3,15 @@ Rails.application.routes.draw do
controllers :tokens => 'tokens'
skip_controllers :applications, :authorized_applications
end
namespace :api, defaults: { format: :json } do
namespace :v1 do
resources :parties, only: [:index, :create, :show, :destroy]
resources :users, only: [:create, :show]
resources :search, only: [:index]
resources :users, only: [:create, :show]
post 'check/email', to: 'users#check_email'
post 'check/username', to: 'users#check_username'
post 'weapons', to: 'grid_weapons#create'
delete 'weapons', to: 'grid_weapons#destroy'