mirror of
https://github.com/internetee/registry.git
synced 2025-06-10 14:44:47 +02:00
Implement the basic interface for the Authentication endpoint
* Handle errors as 422 * Require parameters through strong_parameters * Use a custom rescue_from
This commit is contained in:
parent
1c6b838b2b
commit
dad57ba528
4 changed files with 35 additions and 11 deletions
|
@ -5,21 +5,30 @@ module Api
|
|||
module V1
|
||||
module Registrant
|
||||
class AuthController < ActionController::API
|
||||
rescue_from(ActionController::ParameterMissing) do |parameter_missing_exception|
|
||||
error = {}
|
||||
error[parameter_missing_exception.param] = ['parameter is required']
|
||||
response = { errors: [error] }
|
||||
render json: response, status: :unprocessable_entity
|
||||
end
|
||||
|
||||
def eid
|
||||
login_params = set_eid_params
|
||||
user = RegistrantUser.find_or_create_by_api_data(eid_params)
|
||||
token = create_token(user)
|
||||
|
||||
user = RegistrantUser.find_or_create_by_api_data(login_params)
|
||||
|
||||
unless user.valid?
|
||||
render json: user.errors, status: :bad_request
|
||||
else
|
||||
token = create_token(user)
|
||||
if token
|
||||
render json: token
|
||||
else
|
||||
render json: { error: 'Cannot create generate session token'}
|
||||
end
|
||||
end
|
||||
|
||||
def set_eid_params
|
||||
params.permit(:ident, :first_name, :last_name)
|
||||
private
|
||||
|
||||
def eid_params
|
||||
[:ident, :first_name, :last_name].each_with_object(params) do |key, obj|
|
||||
obj.require(key)
|
||||
end
|
||||
end
|
||||
|
||||
def create_token(user)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue