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.CompositionEntityValidationDataDto;
16 import org.openecomp.sdcrests.vendorsoftwareproducts.types.ImageCreationDto;
17 import org.openecomp.sdcrests.vendorsoftwareproducts.types.ImageDto;
18 import org.openecomp.sdcrests.vendorsoftwareproducts.types.ImageRequestDto;
19 import org.openecomp.sdcrests.vendorsoftwareproducts.types.QuestionnaireResponseDto;
20 import org.openecomp.sdcrests.vsp.rest.Images;
21 import org.openecomp.sdcrests.vsp.rest.mapping.MapCompositionEntityValidationDataToDto;
22 import org.openecomp.sdcrests.vsp.rest.mapping.MapImageEntityToImageCreationDto;
23 import org.openecomp.sdcrests.vsp.rest.mapping.MapImageEntityToImageDto;
24 import org.openecomp.sdcrests.vsp.rest.mapping.MapImageRequestDtoToImageEntity;
25 import org.openecomp.sdcrests.vsp.rest.mapping.MapQuestionnaireResponseToQuestionnaireResponseDto;
26 import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
27 import org.springframework.context.annotation.Scope;
28 import org.springframework.stereotype.Service;
30 import javax.inject.Named;
31 import javax.ws.rs.core.Response;
32 import java.util.Collection;
37 @Scope(value = "prototype")
38 public class ImagesImpl implements Images {
40 private ImageManager imageManager = ImageManagerFactory.getInstance().createInterface();
41 private ComponentManager componentManager =
42 ComponentManagerFactory.getInstance().createInterface();
45 public Response create(ImageRequestDto request, String vspId, String versionId,
46 String componentId, String user) {
48 new MapImageRequestDtoToImageEntity().applyMapping(request, ImageEntity.class);
49 image.setVspId(vspId);
50 image.setComponentId(componentId);
51 image.setVersion(new Version(versionId));
52 componentManager.validateComponentExistence(vspId, image.getVersion(), componentId);
53 ImageEntity createdImage = imageManager.createImage(image);
54 MapImageEntityToImageCreationDto mapping = new MapImageEntityToImageCreationDto();
55 ImageCreationDto createdImageDto = mapping.applyMapping(createdImage, ImageCreationDto.class);
57 .ok(createdImage != null ? createdImageDto : null)
62 public Response getImageSchema(String vspId, String versionId, String componentId, String user) {
63 CompositionEntityResponse<Image> response = imageManager.getImageSchema(vspId);
64 return Response.ok(response).build();
68 public Response get(String vspId, String versionId, String componentId, String imageId,
70 Version version = new Version(versionId);
71 componentManager.validateComponentExistence(vspId, version, componentId);
72 CompositionEntityResponse<Image> response =
73 imageManager.getImage(vspId, version, componentId, imageId);
75 return Response.ok(response).build();
79 public Response list(String vspId, String versionId, String componentId, String user) {
80 Version vspVersion = new Version(versionId);
81 componentManager.validateComponentExistence(vspId, vspVersion, componentId);
82 Collection<ImageEntity> images = imageManager.listImages(vspId, vspVersion, componentId);
84 MapImageEntityToImageDto mapper = new MapImageEntityToImageDto();
85 GenericCollectionWrapper<ImageDto> results = new GenericCollectionWrapper<>();
86 for (ImageEntity image : images) {
87 results.add(mapper.applyMapping(image, ImageDto.class));
90 return Response.ok(results).build();
94 public Response delete(String vspId, String versionId, String componentId, String imageId,
96 Version vspVersion = new Version(versionId);
97 componentManager.validateComponentExistence(vspId, vspVersion, componentId);
98 imageManager.deleteImage(vspId, vspVersion, componentId, imageId);
99 return Response.ok().build();
103 public Response update(ImageRequestDto request, String vspId, String versionId,
104 String componentId, String imageId, String user) {
105 ImageEntity imageEntity = new MapImageRequestDtoToImageEntity().applyMapping(request,
107 imageEntity.setVspId(vspId);
108 imageEntity.setVersion(new Version(versionId));
109 imageEntity.setComponentId(componentId);
110 imageEntity.setId(imageId);
111 componentManager.validateComponentExistence(vspId, imageEntity.getVersion(), componentId);
113 CompositionEntityValidationData validationData = imageManager.updateImage(imageEntity);
114 return validationData != null && CollectionUtils.isNotEmpty(validationData.getErrors())
115 ? Response.status(Response.Status.EXPECTATION_FAILED).entity(
116 new MapCompositionEntityValidationDataToDto()
117 .applyMapping(validationData, CompositionEntityValidationDataDto.class)).build() :
118 Response.ok().build();
122 public Response getQuestionnaire(String vspId, String versionId, String componentId,
123 String imageId, String user) {
124 Version vspVersion = new Version(versionId);
125 componentManager.validateComponentExistence(vspId, vspVersion, componentId);
126 QuestionnaireResponse questionnaireResponse =
127 imageManager.getImageQuestionnaire(vspId, vspVersion, componentId, imageId);
129 QuestionnaireResponseDto result = new MapQuestionnaireResponseToQuestionnaireResponseDto()
130 .applyMapping(questionnaireResponse, QuestionnaireResponseDto.class);
131 return Response.ok(result).build();
136 public Response updateQuestionnaire(String questionnaireData, String vspId, String versionId,
137 String componentId, String imageId, String user) {
138 Version version = new Version(versionId);
139 componentManager.validateComponentExistence(vspId, version, componentId);
140 imageManager.updateImageQuestionnaire(vspId, version, componentId, imageId, questionnaireData);
141 return Response.ok().build();