package de.passau.uni.sec.compose.id.core.service; import java.util.Collection; import java.util.HashMap; import java.util.Map; 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.domain.ComposeComponentPrincipal; import de.passau.uni.sec.compose.id.core.domain.ComposeUserPrincipal; import de.passau.uni.sec.compose.id.core.domain.IPrincipal; import de.passau.uni.sec.compose.id.core.event.CreateApplicationEvent; import de.passau.uni.sec.compose.id.core.event.Event; import de.passau.uni.sec.compose.id.core.event.GetApplicationEvent; import de.passau.uni.sec.compose.id.core.event.DetailsIdEvent; import de.passau.uni.sec.compose.id.core.event.GetServiceCompositionEvent; import de.passau.uni.sec.compose.id.core.event.GetServiceInstanceEvent; import de.passau.uni.sec.compose.id.core.event.GetServiceObjectEvent; import de.passau.uni.sec.compose.id.core.event.GetServiceSourceCodeEvent; import de.passau.uni.sec.compose.id.core.event.GetUserEvent; import de.passau.uni.sec.compose.id.core.persistence.entities.Application; import de.passau.uni.sec.compose.id.core.persistence.entities.Global; import de.passau.uni.sec.compose.id.core.persistence.entities.IEntity; import de.passau.uni.sec.compose.id.core.persistence.entities.User; import de.passau.uni.sec.compose.id.core.persistence.repository.ApplicationRepository; import de.passau.uni.sec.compose.id.core.persistence.repository.UniqueRepository; import de.passau.uni.sec.compose.id.core.service.reputation.ReputationManager; import de.passau.uni.sec.compose.id.core.service.security.Authorization; import de.passau.uni.sec.compose.id.core.service.security.RestAuthentication; import de.passau.uni.sec.compose.id.rest.messages.ApplicationCreateMessage; import de.passau.uni.sec.compose.id.rest.messages.ApplicationResponseMessage; import de.passau.uni.sec.compose.id.rest.messages.EntityResponseMessage; @Service public class AnyEntityById { @Autowired private ApplicationService applicationService; @Autowired private ServiceInstanceService siService; @Autowired private ServiceSourceCodeService ssService; @Autowired private ServiceObjectService soService; @Autowired private ServiceCompositionService scService; @Autowired private UserService uService; private static Logger LOG = LoggerFactory.getLogger(AnyEntityById.class); public Map<String, Object> getAnyEntity(String uid, Collection<IPrincipal> principals) throws IdManagementException { EntityResponseMessage r =null; Map<String,Object> res = new HashMap<>(); try{ r = applicationService.getEntity(new GetApplicationEvent(uid,principals)); res.put("application",r); r=null; }catch(IdManagementException ex) { if(ex.getHTTPErrorCode()!=404) throw ex; } try{ r = siService.getEntity(new GetServiceInstanceEvent(uid,principals)); res.put("service_instance",r); r=null; }catch(IdManagementException ex) { if(ex.getHTTPErrorCode()!=404) throw ex; } try{ r = ssService.getEntity(new GetServiceSourceCodeEvent(uid,principals)); res.put("service_source_code",r); r=null; }catch(IdManagementException ex) { if(ex.getHTTPErrorCode()!=404) throw ex; } try{ r = soService.getEntity(new GetServiceObjectEvent(uid,principals)); res.put("service_object",r); r=null; }catch(IdManagementException ex) { if(ex.getHTTPErrorCode()!=404) throw ex; } try{ r = scService.getEntity(new GetServiceCompositionEvent(uid,principals)); res.put("service_composition",r); r=null; }catch(IdManagementException ex) { if(ex.getHTTPErrorCode()!=404) throw ex; } try{ r = uService.getEntity(new GetUserEvent(uid,principals)); res.put("user",r); r=null; }catch(IdManagementException ex) { if(ex.getHTTPErrorCode()!=404) throw ex; } return res; } }