Commit 0786a07f authored by Kostis Trantzas's avatar Kostis Trantzas
Browse files

Merge branch 'create-catergories-for-externally-added-specs' into 'develop'

Create categories for externally added specs

See merge request !94
parents 5b08ddf9 83d89dd8
Loading
Loading
Loading
Loading
Loading
+36 −1
Original line number Diff line number Diff line
@@ -21,9 +21,11 @@ package org.etsi.osl.tmf.pm632.reposervices;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonProcessingException;
@@ -43,10 +45,17 @@ import org.etsi.osl.tmf.pm632.model.OrganizationCreateEvent;
import org.etsi.osl.tmf.pm632.model.OrganizationCreateEventPayload;
import org.etsi.osl.tmf.pm632.model.OrganizationUpdate;
import org.etsi.osl.tmf.pm632.repo.OrganizationRepository;
import org.etsi.osl.tmf.scm633.model.ServiceCatalog;
import org.etsi.osl.tmf.scm633.model.ServiceCatalogCreate;
import org.etsi.osl.tmf.scm633.model.ServiceCategory;
import org.etsi.osl.tmf.scm633.model.ServiceCategoryRef;
import org.etsi.osl.tmf.scm633.reposervices.CatalogRepoService;
import org.etsi.osl.tmf.scm633.reposervices.CategoryRepoService;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import jakarta.persistence.EntityManagerFactory;
@@ -63,6 +72,13 @@ public class OrganizationRepoService {
	@Autowired
	OrganizationApiRouteBuilderEvents organizationApiRouteBuilder;

	@Autowired
	CategoryRepoService categoryRepoService;

	@Autowired
	@Lazy
	CatalogRepoService catalogRepoService;

	private SessionFactory  sessionFactory;
	

@@ -195,6 +211,25 @@ public class OrganizationRepoService {
			c.addPartyCharacteristicItem(partyCharacteristicItem);
			
		}
		//we proceed to create a category with the name of the external org
		ServiceCategory serviceCategory= new ServiceCategory();
		serviceCategory.setName(organization.getName());
		ServiceCategory savedServiceCategory= categoryRepoService.addCategory(serviceCategory);

		ServiceCatalog serviceCatalog= catalogRepoService.findByName("External Services Catalog");

		if(serviceCatalog==null){
			ServiceCatalogCreate sc = new ServiceCatalogCreate();
			sc.setName("External Services Catalog");
			sc.setDescription("Secondary Catalog");
			sc.setVersion("1.0");
			Set<ServiceCategory> serviceCategories=new HashSet<>();
			serviceCategories.add(savedServiceCategory);
			this.catalogRepoService.addCatalog(sc);
		}else {
			serviceCatalog.getCategoryObj().add(savedServiceCategory);
			this.catalogRepoService.updateCatalog(serviceCatalog);
		}

		c = updateOrganizationData(c, organization);
		c = organizationRepository.save(c);
+19 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import java.nio.file.Paths;
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
@@ -65,12 +66,14 @@ import org.etsi.osl.tmf.scm633.model.ServiceCandidate;
import org.etsi.osl.tmf.scm633.model.ServiceCandidateCreate;
import org.etsi.osl.tmf.scm633.model.ServiceCandidateUpdate;
import org.etsi.osl.tmf.scm633.model.ServiceCategory;
import org.etsi.osl.tmf.scm633.model.ServiceCategoryRef;
import org.etsi.osl.tmf.scm633.model.ServiceSpecCharacteristic;
import org.etsi.osl.tmf.scm633.model.ServiceSpecCharacteristicValue;
import org.etsi.osl.tmf.scm633.model.ServiceSpecRelationship;
import org.etsi.osl.tmf.scm633.model.ServiceSpecification;
import org.etsi.osl.tmf.scm633.model.ServiceSpecificationCreate;
import org.etsi.osl.tmf.scm633.model.ServiceSpecificationUpdate;
import org.etsi.osl.tmf.scm633.repo.CategoriesRepository;
import org.etsi.osl.tmf.scm633.repo.ServiceSpecificationRepository;
import org.etsi.osl.tmf.stm653.model.CharacteristicSpecification;
import org.etsi.osl.tmf.stm653.model.ServiceTestSpecification;
@@ -137,6 +140,9 @@ public class ServiceSpecificationRepoService {
	@Autowired
	ServiceSpecificationNotificationService serviceSpecificationNotificationService;

	@Autowired
	CategoriesRepository categoriesRepository;
	
	private SessionFactory sessionFactory;

	private static final String METADATADIR = System.getProperty("user.home") + File.separator + ".attachments"
@@ -171,6 +177,19 @@ public class ServiceSpecificationRepoService {
		ServiceSpecificationRef serviceSpecificationRef = new ServiceSpecificationRef();
		serviceCandidate.setServiceSpecification(serviceSpecificationRef);
		serviceSpecificationRef.setId(serviceSpec.getId());
		if(serviceServiceSpecification.getRelatedParty()!=null && !serviceServiceSpecification.getRelatedParty().isEmpty() && serviceServiceSpecification.getRelatedParty().get(0).getRole().equalsIgnoreCase(UserPartRoleType.ORGANIZATION.getValue())){
			Optional<ServiceCategory> serviceCategory =categoriesRepository.findByName(serviceServiceSpecification.getRelatedParty().get(0).getName());

			if (serviceCategory.isPresent()){
				List<ServiceCategoryRef> serviceCategoryRefs = new ArrayList<>();
				ServiceCategoryRef serviceCategoryRef= new ServiceCategoryRef();
				serviceCategoryRef.setId(serviceCategory.get().getId());
				serviceCategoryRef.setName(serviceCategory.get().getName());
				serviceCategoryRefs.add(serviceCategoryRef);
				serviceCandidate.setCategory(serviceCategoryRefs);

			}
		}
		ServiceCandidate serviceCandidateObj = candidateRepoService.addServiceCandidate(serviceCandidate);

		serviceSpec.setServiceCandidateObjId(serviceCandidateObj.getUuid());