71 lines
2.0 KiB
Java
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;
|
|
}
|
|
}
|