1 package org.openecomp.sdcrests.vsp.rest.services;
4 import org.apache.commons.collections.CollectionUtils;
5 import org.openecomp.sdc.vendorsoftwareproduct.ComponentManager;
6 import org.openecomp.sdc.vendorsoftwareproduct.ComponentManagerFactory;
7 import org.openecomp.sdc.vendorsoftwareproduct.ImageManager;
8 import org.openecomp.sdc.vendorsoftwareproduct.ImageManagerFactory;
9 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ImageEntity;
10 import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
11 import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse;
12 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
13 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Image;
14 import org.openecomp.sdc.versioning.dao.types.Version;
15 import org.openecomp.sdcrests.vendorsoftwareproducts.types.*;
16 import org.openecomp.sdcrests.vsp.rest.Images;
17 import org.openecomp.sdcrests.vsp.rest.mapping.*;
18 import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
19 import org.springframework.context.annotation.Scope;
20 import org.springframework.stereotype.Service;
22 import javax.inject.Named;
23 import javax.ws.rs.core.Response;
24 import java.util.Collection;
29 @Scope(value = "prototype")
30 public class ImagesImpl implements Images {
32 private ImageManager imageManager = ImageManagerFactory.getInstance().createInterface();
33 private ComponentManager componentManager =
34 ComponentManagerFactory.getInstance().createInterface();
37 public Response create(ImageRequestDto request, String vspId, String versionId,
38 String componentId, String user) {
40 new MapImageRequestDtoToImageEntity().applyMapping(request, ImageEntity.class);
41 image.setVspId(vspId);
42 image.setComponentId(componentId);
43 image.setVersion(new Version(versionId));
44 componentManager.validateComponentExistence(vspId, image.getVersion(), componentId);
45 ImageEntity createdImage = imageManager.createImage(image);
46 MapImageEntityToImageCreationDto mapping = new MapImageEntityToImageCreationDto();
47 ImageCreationDto createdImageDto = mapping.applyMapping(createdImage, ImageCreationDto.class);
49 .ok(createdImage != null ? createdImageDto : null)
54 public Response getImageSchema(String vspId, String versionId, String componentId, String user) {
55 CompositionEntityResponse<Image> response = imageManager.getImageSchema(vspId);
56 return Response.ok(response).build();
60 public Response get(String vspId, String versionId, String componentId, String imageId,
62 Version version = new Version(versionId);
63 componentManager.validateComponentExistence(vspId, version, componentId);
64 CompositionEntityResponse<Image> response =
65 imageManager.getImage(vspId, version, componentId, imageId);
67 return Response.ok(response).build();
71 public Response list(String vspId, String versionId, String componentId, String user) {
72 Version vspVersion = new Version(versionId);
73 componentManager.validateComponentExistence(vspId, vspVersion, componentId);
74 Collection<ImageEntity> images = imageManager.listImages(vspId, vspVersion, componentId);
76 MapImageEntityToImageDto mapper = new MapImageEntityToImageDto();
77 GenericCollectionWrapper<ImageDto> results = new GenericCollectionWrapper<>();
78 for (ImageEntity image : images) {
79 results.add(mapper.applyMapping(image, ImageDto.class));
82 return Response.ok(results).build();
86 public Response delete(String vspId, String versionId, String componentId, String imageId,
88 Version vspVersion = new Version(versionId);
89 componentManager.validateComponentExistence(vspId, vspVersion, componentId);
90 imageManager.deleteImage(vspId, vspVersion, componentId, imageId);
91 return Response.ok().build();
95 public Response update(ImageRequestDto request, String vspId, String versionId,
96 String componentId, String imageId, String user) {
97 ImageEntity imageEntity = new MapImageRequestDtoToImageEntity().applyMapping(request,
99 imageEntity.setVspId(vspId);
100 imageEntity.setVersion(new Version(versionId));
101 imageEntity.setComponentId(componentId);
102 imageEntity.setId(imageId);
103 componentManager.validateComponentExistence(vspId, imageEntity.getVersion(), componentId);
105 CompositionEntityValidationData validationData = imageManager.updateImage(imageEntity);
106 return validationData != null && CollectionUtils.isNotEmpty(validationData.getErrors())
107 ? Response.status(Response.Status.EXPECTATION_FAILED).entity(
108 new MapCompositionEntityValidationDataToDto()
109 .applyMapping(validationData, CompositionEntityValidationDataDto.class)).build() :
110 Response.ok().build();
114 public Response getQuestionnaire(String vspId, String versionId, String componentId,
115 String imageId, String user) {
116 Version vspVersion = new Version(versionId);
117 componentManager.validateComponentExistence(vspId, vspVersion, componentId);
118 QuestionnaireResponse questionnaireResponse =
119 imageManager.getImageQuestionnaire(vspId, vspVersion, componentId, imageId);
121 QuestionnaireResponseDto result = new MapQuestionnaireResponseToQuestionnaireResponseDto()
122 .applyMapping(questionnaireResponse, QuestionnaireResponseDto.class);
123 return Response.ok(result).build();
128 public Response updateQuestionnaire(String questionnaireData, String vspId, String versionId,
129 String componentId, String imageId, String user) {
130 Version version = new Version(versionId);
131 componentManager.validateComponentExistence(vspId, version, componentId);
132 imageManager.updateImageQuestionnaire(vspId, version, componentId, imageId, questionnaireData);
133 return Response.ok().build();