Add auth-token class

This commit is contained in:
Maciej Szlosarczyk 2018-07-19 10:31:31 +03:00
parent d67e777ea8
commit 1c6b838b2b
No known key found for this signature in database
GPG key ID: 41D62D42D3B0D765
5 changed files with 65 additions and 6 deletions

View file

@ -1,4 +1,5 @@
require 'rails5_api_controller_backport'
require 'auth_token'
module Api
module V1
@ -7,11 +8,24 @@ module Api
def eid
login_params = set_eid_params
render json: login_params
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)
render json: token
end
end
def set_eid_params
params.permit(:ident, :first_name, :last_name, :country)
params.permit(:ident, :first_name, :last_name)
end
def create_token(user)
token = AuthToken.new
hash = token.generate_token(user)
hash
end
end
end

View file

@ -52,6 +52,16 @@ class RegistrantUser < User
u
end
def find_or_create_by_api_data(api_data = {})
estonian_ident = "EE-#{api_data[:ident]}"
user = find_or_create_by(registrant_ident: estonian_ident)
user.username = "#{api_data[:first_name]}, #{api_data[:last_name]}"
user.save
user
end
def find_or_create_by_mid_data(response)
u = where(registrant_ident: "#{response.user_country}-#{response.user_id_code}").first_or_create
u.username = "#{response.user_givenname} #{response.user_surname}"