Update UsersController
Adds registration, check_email, and check_username methods
This commit is contained in:
parent
2c9c6de915
commit
12a98d4abd
2 changed files with 42 additions and 6 deletions
|
|
@ -1,12 +1,45 @@
|
||||||
class Api::V1::UsersController < Api::V1::ApiController
|
class Api::V1::UsersController < Api::V1::ApiController
|
||||||
|
class ForbiddenError < StandardError; end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@user = User.new(user_params)
|
@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
|
end
|
||||||
|
|
||||||
def email_available
|
def check_email
|
||||||
@available = User.where("email = ?", params[:email]).count == 0
|
if params[:email].present?
|
||||||
render :email_available
|
@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
|
end
|
||||||
|
|
||||||
def show
|
def show
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,15 @@ Rails.application.routes.draw do
|
||||||
controllers :tokens => 'tokens'
|
controllers :tokens => 'tokens'
|
||||||
skip_controllers :applications, :authorized_applications
|
skip_controllers :applications, :authorized_applications
|
||||||
end
|
end
|
||||||
|
|
||||||
namespace :api, defaults: { format: :json } do
|
namespace :api, defaults: { format: :json } do
|
||||||
namespace :v1 do
|
namespace :v1 do
|
||||||
resources :parties, only: [:index, :create, :show, :destroy]
|
resources :parties, only: [:index, :create, :show, :destroy]
|
||||||
resources :users, only: [:create, :show]
|
|
||||||
resources :search, only: [:index]
|
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'
|
post 'weapons', to: 'grid_weapons#create'
|
||||||
delete 'weapons', to: 'grid_weapons#destroy'
|
delete 'weapons', to: 'grid_weapons#destroy'
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue