class UserServiceImpl implements UserService {

	@Override
	public String generateLoginToken(OauthSite site, String loginName) {
		String internalToken = IdGenerator.uuid();
		LoginToken loginToken = new LoginToken();
		
		PersisentLogins pl = persisentLoginsDao.findByLoginName(loginName).map(login -> {
			login.setToken(internalToken);
			return login;
		}).orElseGet(() -> {
			PersisentLogins login = new PersisentLogins();
			login.setLoginName(loginName);
			login.setToken(internalToken);
			login.setLastUsedTime(LocalDateTime.now());
			return login;
		});
		
		persisentLoginsDao.save(pl);
		
		return loginToken.encode(site.getValue().toLowerCase(), internalToken);
	}

}