package fr.la_banquise.backend.services; import java.util.List; import fr.la_banquise.backend.data.model.Instance; import fr.la_banquise.backend.data.model.Tp; import fr.la_banquise.backend.data.model.User; import fr.la_banquise.backend.data.repository.InstanceRepository; import fr.la_banquise.backend.data.repository.TpRepository; import fr.la_banquise.backend.data.repository.UserRepository; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import jakarta.transaction.Transactional; /** * InstanceService */ @ApplicationScoped public class InstanceService { @Inject InstanceRepository instanceRepository; @Inject UserRepository userRepository; @Inject TpRepository tpRepository; public List getAllInstances() { return instanceRepository.findAll().list(); } public List getAllInstances(String username) { User user = userRepository.findByName(username); return instanceRepository.find("user", user).list(); } public Instance getInstance(Long id) { return instanceRepository.findById(id); } @Transactional public Instance createInstance(String name, String ssh, String pwd, String username, Long tpId) { User user = userRepository.findByName(username); Tp tp = tpRepository.findById(tpId); Instance instance = new Instance(name, ssh, pwd, user, tp); instanceRepository.persist(instance); return instance; } @Transactional public Instance createInstance(String name, String ssh, String pwd, User user, Long tpId) { Tp tp = tpRepository.findById(tpId); Instance instance = new Instance(name, ssh, pwd, user, tp); instanceRepository.persist(instance); return instance; } @Transactional public boolean deleteInstance(Long id) { return instanceRepository.deleteById(id); } @Transactional public Instance updateInstance(Long id) { Instance instance = instanceRepository.findById(id); return instance; } }