1 package org.openecomp.sdcrests.vsp.rest.services;
3 import org.apache.commons.collections4.CollectionUtils;
4 import org.openecomp.sdc.vendorsoftwareproduct.DeploymentFlavorManager;
5 import org.openecomp.sdc.vendorsoftwareproduct.DeploymentFlavorManagerFactory;
6 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity;
7 import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
8 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
9 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
10 import org.openecomp.sdc.versioning.dao.types.Version;
11 import org.openecomp.sdcrests.vendorsoftwareproducts.types.*;
12 import org.openecomp.sdcrests.vsp.rest.DeploymentFlavors;
13 import org.openecomp.sdcrests.vsp.rest.mapping.*;
14 import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
15 import org.springframework.context.annotation.Scope;
16 import org.springframework.stereotype.Service;
18 import javax.inject.Named;
19 import javax.ws.rs.core.Response;
20 import java.util.Collection;
23 @Service("deploymentFlavors")
24 @Scope(value = "prototype")
25 public class DeploymentFlavorsImpl implements DeploymentFlavors {
26 private DeploymentFlavorManager deploymentFlavorManager =
27 DeploymentFlavorManagerFactory.getInstance().createInterface();
30 public Response create(DeploymentFlavorRequestDto request, String vspId, String versionId,
32 DeploymentFlavorEntity deploymentFlavorEntity =
33 new MapDeploymentFlavorRequestDtoToDeploymentFlavorEntity()
34 .applyMapping(request, DeploymentFlavorEntity.class);
35 deploymentFlavorEntity.setVspId(vspId);
36 deploymentFlavorEntity.setVersion(new Version(versionId));
37 DeploymentFlavorEntity createdDeploymentFlavor =
38 deploymentFlavorManager.createDeploymentFlavor(deploymentFlavorEntity);
39 MapDeploymentFlavorEntityToDeploymentFlavorCreationDto mapping =
40 new MapDeploymentFlavorEntityToDeploymentFlavorCreationDto();
41 DeploymentFlavorCreationDto deploymentFlavorCreatedDto = mapping.applyMapping
42 (createdDeploymentFlavor, DeploymentFlavorCreationDto.class);
44 .ok(createdDeploymentFlavor != null ? deploymentFlavorCreatedDto : null)
49 public Response list(String vspId, String versionId, String user) {
50 Collection<DeploymentFlavorEntity> deploymentFlavors =
51 deploymentFlavorManager.listDeploymentFlavors(vspId, new Version(versionId));
53 MapDeploymentFlavorEntityDeploymentFlavorToListResponse mapper = new
54 MapDeploymentFlavorEntityDeploymentFlavorToListResponse();
55 GenericCollectionWrapper<DeploymentFlavorListResponseDto> results =
56 new GenericCollectionWrapper<>();
57 for (DeploymentFlavorEntity deploymentFlavor : deploymentFlavors) {
58 results.add(mapper.applyMapping(deploymentFlavor, DeploymentFlavorListResponseDto.class));
60 return Response.ok(results).build();
64 public Response get(String vspId, String versionId, String deploymentFlavorId, String user) {
65 CompositionEntityResponse<DeploymentFlavor> response = deploymentFlavorManager
66 .getDeploymentFlavor(vspId, new Version(versionId), deploymentFlavorId);
68 CompositionEntityResponseDto<DeploymentFlavorDto> responseDto = new
69 CompositionEntityResponseDto<>();
70 new MapCompositionEntityResponseToDto<>(new MapDeploymentFlavorToDeploymentDto(),
71 DeploymentFlavorDto.class)
72 .doMapping(response, responseDto);
73 return Response.ok(responseDto).build();
77 public Response getSchema(String vspId, String versionId, String user) {
78 CompositionEntityResponse<DeploymentFlavor> response = deploymentFlavorManager
79 .getDeploymentFlavorSchema(vspId, new Version(versionId));
80 return Response.ok(response).build();
84 public Response delete(String vspId, String versionId, String deploymentFlavorId, String user) {
85 Version version = new Version(versionId);
86 deploymentFlavorManager.deleteDeploymentFlavor(vspId, version, deploymentFlavorId);
87 return Response.ok().build();
91 public Response update(DeploymentFlavorRequestDto request, String vspId, String versionId,
92 String deploymentFlavorId, String user) {
93 DeploymentFlavorEntity deploymentFlavorEntity =
94 new MapDeploymentFlavorRequestDtoToDeploymentFlavorEntity().applyMapping(request,
95 DeploymentFlavorEntity.class);
96 deploymentFlavorEntity.setVspId(vspId);
97 deploymentFlavorEntity.setVersion(new Version(versionId));
98 deploymentFlavorEntity.setId(deploymentFlavorId);
100 CompositionEntityValidationData validationData =
101 deploymentFlavorManager.updateDeploymentFlavor(deploymentFlavorEntity);
102 return validationData != null && CollectionUtils.isNotEmpty(validationData.getErrors())
103 ? Response.status(Response.Status.EXPECTATION_FAILED).entity(
104 new MapCompositionEntityValidationDataToDto().applyMapping(validationData,
105 CompositionEntityValidationDataDto.class)).build() : Response.ok().build();