class ApiAuthenticateUser
  prepend SimpleCommand
  
  def initialize(login, password)
    @login = login
    @password = password
  end
  
  def call
    JsonWebToken.encode(user_id: user.id) if user
  end
  
  private
  
  attr_accessor :login, :password
  
  def user
    user = User.find_by(login: login)
    # Authlogic password validation method: valid_password?
    return user if user && user.valid_password?(password)

    errors.add :user_authentication, 'invalid credentials'
    nil
  end
end
