package de.passau.uni.sec.compose.id.core.service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import de.passau.uni.sec.compose.id.common.exception.IdManagementException;
import de.passau.uni.sec.compose.id.common.exception.IdManagementException.Level;
import de.passau.uni.sec.compose.id.core.persistence.entities.Global;
import de.passau.uni.sec.compose.id.core.persistence.repository.ApplicationRepository;
import de.passau.uni.sec.compose.id.core.persistence.repository.ServiceCompositionRepository;
import de.passau.uni.sec.compose.id.core.persistence.repository.ServiceInstanceRepository;
import de.passau.uni.sec.compose.id.core.persistence.repository.ServiceObjectRepository;
import de.passau.uni.sec.compose.id.core.persistence.repository.ServiceSourceCodeRepository;
import de.passau.uni.sec.compose.id.core.persistence.repository.UniqueRepository;
import de.passau.uni.sec.compose.id.core.persistence.repository.UserRepository;
@Service
public class UniqueValidation {
public static final String USER = "user";
public static final String SERVICE_OBJECT = "so";
public static final String SERVICE_SOURCE = "ssource";
public static final String SERVICE_INSTANCE = "sinstance";
public static final String SERVICE_COMPOSITION= "scomposition";
public static final String APPLICATION = "application";
private Logger LOG = LoggerFactory.getLogger(UniqueValidation.class);
@Autowired
private ApplicationRepository applicationRepository;
@Autowired
private ServiceInstanceRepository siRepository;
@Autowired
private ServiceSourceCodeRepository ssRepository;
@Autowired
private ServiceObjectRepository soRepository;
@Autowired
private ServiceCompositionRepository scRepository;
@Autowired
private UserRepository uRepository;
@Autowired
private UniqueRepository uniqueRepository;
public void insertUnique(String id, String type) throws IdManagementException
{
Global g = new Global();
g.setId(id);
g.setType(type);
uniqueRepository.save(g);
}
public void verifyUnique(String id) throws IdManagementException {
Global u = uniqueRepository.findOne(id);
if(u!=null)
/*if(applicationRepository.findOne(id)!=null ||
siRepository.findOne(id)!=null ||
ssRepository.findOne(id)!=null ||
soRepository.findOne(id)!=null ||
scRepository.findOne(id)!=null ||
uRepository.findOne(id)!=null )*/
{
throw new IdManagementException("Entity with the same id already exists",null,LOG,"Entity with id "+id+" already exists",Level.DEBUG,409);
}
else{
}
}
}