33 lines
768 B
Ruby
33 lines
768 B
Ruby
class Api::RegistrationsController < ApplicationController
|
|
skip_before_action :authenticate_request!, only: [:create]
|
|
|
|
def create
|
|
user = User.new(registration_params)
|
|
|
|
if user.save
|
|
token = JwtService.encode(user_id: user.id)
|
|
render json: {
|
|
user: user_response(user),
|
|
token: token
|
|
}, status: :created
|
|
else
|
|
render json: { errors: user.errors.full_messages }, status: :unprocessable_entity
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def registration_params
|
|
params.require(:user).permit(:nickname, :password, :avatar)
|
|
end
|
|
|
|
def user_response(user)
|
|
{
|
|
id: user.id,
|
|
nickname: user.nickname,
|
|
avatar_url: user.avatar.attached? ? url_for(user.avatar) : nil,
|
|
created_at: user.created_at
|
|
}
|
|
end
|
|
end
|