2024-10-18 17:55:13 +02:00

71 lines
2.0 KiB
Java

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<Instance> getAllInstances() {
return instanceRepository.findAll().list();
}
public List<Instance> 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;
}
}