Commit 4aca351a authored by Nikolaos Kyriakoulis's avatar Nikolaos Kyriakoulis
Browse files

Improved pubilshedServiceSpecifications endpoint by directly retrieving...

Improved pubilshedServiceSpecifications endpoint by directly retrieving ServiceCandidate objects with Category
parent 6e239f3c
Loading
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -2,7 +2,9 @@ package org.etsi.osl.tmf.metrics.reposervices;

import org.etsi.osl.tmf.pm632.repo.IndividualRepository;
import org.etsi.osl.tmf.rcm634.repo.ResourceSpecificationRepository;
import org.etsi.osl.tmf.scm633.model.ServiceCandidate;
import org.etsi.osl.tmf.scm633.model.ServiceCategory;
import org.etsi.osl.tmf.scm633.repo.CandidateRepository;
import org.etsi.osl.tmf.scm633.repo.CategoriesRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -21,16 +23,23 @@ public class GeneralMetricsRepoService {
    @Autowired
    CategoriesRepository categoriesRepository;

    @Autowired
    CandidateRepository candidateRepository;

    public int countRegisteredIndividuals() {
        return individualRepository.countAll();
    }

    public int countPublishedServiceSpecifications() {
        List<ServiceCategory> serviceCategories = categoriesRepository.findByOrderByName();

        List<ServiceCandidate> serviceCandidates = candidateRepository.findAll();
        int count = 0;

        for (ServiceCategory serviceCategory : serviceCategories) {
            count += serviceCategory.getServiceCandidateObj().size() + serviceCategory.getServiceCandidateRefs().size();
        for (ServiceCandidate serviceCandidate : serviceCandidates) {
            System.out.println("ServiceCandidate Category: " + serviceCandidate.getCategoryObj());
            if (serviceCandidate.getCategory() != null) {
                count += 1;
            }
        }
        return count;
    }
+5 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
 */
package org.etsi.osl.tmf.scm633.repo;

import java.util.List;
import java.util.Optional;
import org.etsi.osl.tmf.scm633.model.ServiceCandidate;
import org.springframework.data.jpa.repository.Query;
@@ -36,4 +37,8 @@ public interface CandidateRepository extends CrudRepository<ServiceCandidate, Lo
	@Query("SELECT sc FROM ServiceCandidate sc JOIN FETCH sc.serviceSpecificationObj spec WHERE spec.uuid = ?1")
	Optional<ServiceCandidate> findByServiceSpecUuid(String id);

	// Methods for metrics
	@Query("SELECT sc FROM ServiceCandidate sc")
	List<ServiceCandidate> findAll();

}
+8 −6
Original line number Diff line number Diff line
@@ -5,8 +5,8 @@ import org.etsi.osl.tmf.OpenAPISpringBoot;
import org.etsi.osl.tmf.pm632.model.IndividualCreate;
import org.etsi.osl.tmf.pm632.reposervices.IndividualRepoService;
import org.etsi.osl.tmf.rcm634.reposervices.ResourceSpecificationRepoService;
import org.etsi.osl.tmf.scm633.model.ServiceCategory;
import org.etsi.osl.tmf.scm633.reposervices.CategoryRepoService;
import org.etsi.osl.tmf.scm633.model.ServiceCandidate;
import org.etsi.osl.tmf.scm633.reposervices.CandidateRepoService;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -56,7 +56,7 @@ public class GerenalMetricsApiControllerTest {
    ResourceSpecificationRepoService resourceSpecificationRepoService;

    @Autowired
    CategoryRepoService categoryRepoService;
    CandidateRepoService candidateRepoService;


    @Before
@@ -96,11 +96,13 @@ public class GerenalMetricsApiControllerTest {

        int totalSpecs = JsonPath.read(response, "$.publishedServiceSpecifications");

        List<ServiceCategory> serviceCategories = categoryRepoService.findAll();
        List<ServiceCandidate> serviceCandidates = candidateRepoService.findAll();
        int count = 0;

        for (ServiceCategory serviceCategory : serviceCategories) {
            count += serviceCategory.getServiceCandidateObj().size() + serviceCategory.getServiceCandidateRefs().size();
        for (ServiceCandidate serviceCandidate : serviceCandidates) {
            if (serviceCandidate.getCategory() != null) {
                count += 1;
            }
        }

        assertThat(totalSpecs).isEqualTo(count);