Remove the dependency-cycle between beans
[cps.git] / cps-rest / src / main / java / org / onap / cps / rest / controller / AdminRestController.java
index b8ba089..9b78f85 100755 (executable)
@@ -1,6 +1,6 @@
 /*
  *  ============LICENSE_START=======================================================
- *  Copyright (C) 2020-2022 Nordix Foundation
+ *  Copyright (C) 2020-2023 Nordix Foundation
  *  Modifications Copyright (C) 2020-2021 Bell Canada.
  *  Modifications Copyright (C) 2021 Pantheon.tech
  *  Modifications Copyright (C) 2022 TechMahindra Ltd.
@@ -26,13 +26,15 @@ package org.onap.cps.rest.controller;
 import static org.onap.cps.rest.utils.MultipartFileUtil.extractYangResourcesMap;
 import static org.onap.cps.spi.CascadeDeleteAllowed.CASCADE_DELETE_PROHIBITED;
 
+import io.micrometer.core.annotation.Timed;
+import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotNull;
 import java.util.Collection;
 import java.util.List;
 import java.util.stream.Collectors;
-import javax.validation.Valid;
-import javax.validation.constraints.NotNull;
 import lombok.RequiredArgsConstructor;
-import org.onap.cps.api.CpsAdminService;
+import org.onap.cps.api.CpsAnchorService;
+import org.onap.cps.api.CpsDataspaceService;
 import org.onap.cps.api.CpsModuleService;
 import org.onap.cps.rest.api.CpsAdminApi;
 import org.onap.cps.rest.model.AnchorDetails;
@@ -52,9 +54,10 @@ import org.springframework.web.multipart.MultipartFile;
 @RequiredArgsConstructor
 public class AdminRestController implements CpsAdminApi {
 
-    private final CpsAdminService cpsAdminService;
+    private final CpsDataspaceService cpsDataspaceService;
     private final CpsModuleService cpsModuleService;
     private final CpsRestInputMapper cpsRestInputMapper;
+    private final CpsAnchorService cpsAnchorService;
 
     /**
      * Create a dataspace.
@@ -64,7 +67,7 @@ public class AdminRestController implements CpsAdminApi {
      */
     @Override
     public ResponseEntity<String> createDataspace(@NotNull @Valid final String dataspaceName) {
-        cpsAdminService.createDataspace(dataspaceName);
+        cpsDataspaceService.createDataspace(dataspaceName);
         return new ResponseEntity<>(dataspaceName, HttpStatus.CREATED);
     }
 
@@ -76,7 +79,7 @@ public class AdminRestController implements CpsAdminApi {
      */
     @Override
     public ResponseEntity<Void> createDataspaceV2(@NotNull @Valid final String dataspaceName) {
-        cpsAdminService.createDataspace(dataspaceName);
+        cpsDataspaceService.createDataspace(dataspaceName);
         return new ResponseEntity<>(HttpStatus.CREATED);
     }
 
@@ -88,21 +91,22 @@ public class AdminRestController implements CpsAdminApi {
      */
     @Override
     public ResponseEntity<Void> deleteDataspace(final String apiVersion, final String dataspaceName) {
-        cpsAdminService.deleteDataspace(dataspaceName);
+        cpsDataspaceService.deleteDataspace(dataspaceName);
         return new ResponseEntity<>(HttpStatus.NO_CONTENT);
     }
 
     /**
      * Create a {@link SchemaSet}.
      *
-     * @param multipartFile multipart file
-     * @param schemaSetName schemaset name
      * @param dataspaceName dataspace name
+     * @param schemaSetName schemaset name
+     * @param multipartFile multipart file
      * @return a {@Link ResponseEntity} of created schemaset name & {@link HttpStatus} CREATED
      */
     @Override
-    public ResponseEntity<String> createSchemaSet(@NotNull @Valid final String schemaSetName,
-        final String dataspaceName, @Valid final MultipartFile multipartFile) {
+    public ResponseEntity<String> createSchemaSet(final String dataspaceName,
+                                                  @NotNull @Valid final String schemaSetName,
+                                                  final MultipartFile multipartFile) {
         cpsModuleService.createSchemaSet(dataspaceName, schemaSetName, extractYangResourcesMap(multipartFile));
         return new ResponseEntity<>(schemaSetName, HttpStatus.CREATED);
     }
@@ -110,14 +114,17 @@ public class AdminRestController implements CpsAdminApi {
     /**
      * Create a {@link SchemaSet}.
      *
-     * @param multipartFile multipart file
-     * @param schemaSetName schemaset name
      * @param dataspaceName dataspace name
+     * @param schemaSetName schemaset name
+     * @param multipartFile multipart file
      * @return a {@Link ResponseEntity} of created schema set without any response body & {@link HttpStatus} CREATED
      */
     @Override
-    public ResponseEntity<Void> createSchemaSetV2(@NotNull @Valid final String schemaSetName,
-        final String dataspaceName, @Valid final MultipartFile multipartFile) {
+    @Timed(value = "cps.rest.admin.controller.schemaset.create",
+        description = "Time taken to create schemaset from controller")
+    public ResponseEntity<Void> createSchemaSetV2(final String dataspaceName,
+                                                  @NotNull @Valid final String schemaSetName,
+                                                  final MultipartFile multipartFile) {
         cpsModuleService.createSchemaSet(dataspaceName, schemaSetName, extractYangResourcesMap(multipartFile));
         return new ResponseEntity<>(HttpStatus.CREATED);
     }
@@ -179,7 +186,7 @@ public class AdminRestController implements CpsAdminApi {
     @Override
     public ResponseEntity<String> createAnchor(final String dataspaceName, @NotNull @Valid final String schemaSetName,
         @NotNull @Valid final String anchorName) {
-        cpsAdminService.createAnchor(dataspaceName, schemaSetName, anchorName);
+        cpsAnchorService.createAnchor(dataspaceName, schemaSetName, anchorName);
         return new ResponseEntity<>(anchorName, HttpStatus.CREATED);
     }
 
@@ -194,7 +201,7 @@ public class AdminRestController implements CpsAdminApi {
     @Override
     public ResponseEntity<Void> createAnchorV2(final String dataspaceName, @NotNull @Valid final String schemaSetName,
         @NotNull @Valid final String anchorName) {
-        cpsAdminService.createAnchor(dataspaceName, schemaSetName, anchorName);
+        cpsAnchorService.createAnchor(dataspaceName, schemaSetName, anchorName);
         return new ResponseEntity<>(HttpStatus.CREATED);
     }
 
@@ -209,7 +216,7 @@ public class AdminRestController implements CpsAdminApi {
     @Override
     public ResponseEntity<Void> deleteAnchor(final String apiVersion,
             final String dataspaceName, final String anchorName) {
-        cpsAdminService.deleteAnchor(dataspaceName, anchorName);
+        cpsAnchorService.deleteAnchor(dataspaceName, anchorName);
         return new ResponseEntity<>(HttpStatus.NO_CONTENT);
     }
 
@@ -224,7 +231,7 @@ public class AdminRestController implements CpsAdminApi {
     @Override
     public ResponseEntity<AnchorDetails> getAnchor(final String apiVersion,
             final String dataspaceName, final String anchorName) {
-        final var anchor = cpsAdminService.getAnchor(dataspaceName, anchorName);
+        final var anchor = cpsAnchorService.getAnchor(dataspaceName, anchorName);
         final var anchorDetails = cpsRestInputMapper.toAnchorDetails(anchor);
         return new ResponseEntity<>(anchorDetails, HttpStatus.OK);
     }
@@ -239,7 +246,7 @@ public class AdminRestController implements CpsAdminApi {
     @Override
     public ResponseEntity<List<AnchorDetails>> getAnchors(final String apiVersion,
             final String dataspaceName) {
-        final Collection<Anchor> anchors = cpsAdminService.getAnchors(dataspaceName);
+        final Collection<Anchor> anchors = cpsAnchorService.getAnchors(dataspaceName);
         final List<AnchorDetails> anchorDetails = anchors.stream().map(cpsRestInputMapper::toAnchorDetails)
             .collect(Collectors.toList());
         return new ResponseEntity<>(anchorDetails, HttpStatus.OK);
@@ -247,7 +254,7 @@ public class AdminRestController implements CpsAdminApi {
 
     @Override
     public ResponseEntity<List<DataspaceDetails>> getAllDataspaces(final String apiVersion) {
-        final Collection<Dataspace> dataspaces = cpsAdminService.getAllDataspaces();
+        final Collection<Dataspace> dataspaces = cpsDataspaceService.getAllDataspaces();
         final List<DataspaceDetails> dataspaceDetails = dataspaces.stream().map(cpsRestInputMapper::toDataspaceDetails)
                 .collect(Collectors.toList());
         return new ResponseEntity<>(dataspaceDetails, HttpStatus.OK);
@@ -255,7 +262,7 @@ public class AdminRestController implements CpsAdminApi {
 
     @Override
     public ResponseEntity<DataspaceDetails> getDataspace(final String apiVersion, final String dataspaceName) {
-        final Dataspace dataspace = cpsAdminService.getDataspace(dataspaceName);
+        final Dataspace dataspace = cpsDataspaceService.getDataspace(dataspaceName);
         final DataspaceDetails dataspaceDetails = cpsRestInputMapper.toDataspaceDetails(dataspace);
         return new ResponseEntity<>(dataspaceDetails, HttpStatus.OK);
     }