module Customerq::V1
class Users < Grape::API
include Customerq::V1::Defaults
resource :users do
desc 'Register a user to the API'
params do
group :register, type: Hash do
requires :first_name, type: String, desc: 'First Name'
requires :last_name, type: String, desc: 'Last Name'
requires :email, type: String, desc: 'Email Address'
requires :phone_number, type: String, desc: 'Phone Number'
requires :password, type: String, desc: 'Password'
optional :nick_name, type: String, desc: 'Nick Name'
optional :avatar, type: String, desc: 'Avatar URL'
optional :date_of_birth, type: DateTime, desc: 'Date of Birth'
end
end
post :register do
u = User.where(email: params[:register][:email])
.first_or_initialize(declared(params, {include_missing: false})[:register])
if u.valid?
render u.save
else
error! u.errors.full_messages
end
end
end
end
end