All Downloads are FREE. Search and download functionalities are using the official Maven repository.

fi.evolver.ai.vaadin.UserProfileService Maven / Gradle / Ivy

The newest version!
package fi.evolver.ai.vaadin;

import java.util.Optional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import fi.evolver.ai.vaadin.entity.UserProfile;
import fi.evolver.utils.attribute.ContextAttribute;

@Component
public class UserProfileService {
	private static final ContextAttribute CONTEXT_USER_PROFILE = new ContextAttribute<>("%s.userProfile".formatted(UserProfileService.class.getSimpleName()), UserProfile.class);

	private final UserProfileRepository userProfileRepository;

	@Autowired
	public UserProfileService(UserProfileRepository userProfileRepository) {
		this.userProfileRepository = userProfileRepository;
	}

	public UserProfile fetchUserProfile() {
		return CONTEXT_USER_PROFILE.computeIfAbsent(() -> userProfileRepository.findOrCreateUserProfile());
	}

	public Optional getParameter(String key) {
		UserProfile profile = fetchUserProfile();
		if (profile == null)
			return Optional.empty();
		return profile.getParameter(key);
	}

	public void setParameter(String key, String value) {
		UserProfile profile = fetchUserProfile();
		profile.setParameter(key, value);
		userProfileRepository.save(profile);
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy