2 * Copyright © 2016-2017 European Support Limited
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package org.openecomp.sdcrests.vsp.rest.services;
19 import org.openecomp.sdc.logging.context.MdcUtil;
20 import org.openecomp.sdc.logging.types.LoggerServiceName;
21 import org.openecomp.sdc.vendorsoftwareproduct.ComponentDependencyModelManager;
22 import org.openecomp.sdc.vendorsoftwareproduct.ComponentDependencyModelManagerFactory;
23 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentDependencyModelEntity;
24 import org.openecomp.sdc.versioning.dao.types.Version;
25 import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComponentDependencyCreationDto;
26 import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComponentDependencyModel;
27 import org.openecomp.sdcrests.vendorsoftwareproducts.types.ComponentDependencyResponseDto;
28 import org.openecomp.sdcrests.vsp.rest.ComponentDependencies;
29 import org.openecomp.sdcrests.vsp.rest.mapping.MapComponentDependencyEntityToCreationDto;
30 import org.openecomp.sdcrests.vsp.rest.mapping.MapComponentDependencyEntityToDto;
31 import org.openecomp.sdcrests.vsp.rest.mapping.MapComponentDependencyModelRequestToEntity;
32 import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper;
33 import org.springframework.context.annotation.Scope;
34 import org.springframework.stereotype.Service;
36 import javax.inject.Named;
37 import javax.ws.rs.core.Response;
38 import java.util.Collection;
41 @Service("componentDependencies")
42 @Scope(value = "prototype")
43 public class ComponentDependenciesImpl implements ComponentDependencies {
45 private final ComponentDependencyModelManager componentDependencyModelManager =
46 ComponentDependencyModelManagerFactory.getInstance().createInterface();
49 public Response create(ComponentDependencyModel request, String vspId, String versionId,
51 MdcUtil.initMdc(LoggerServiceName.CREATE_COMPONENT_DEPENDENCY_MODEL.toString());
53 final Version version = new Version(versionId);
55 ComponentDependencyModelEntity modelEntity =
56 new MapComponentDependencyModelRequestToEntity().applyMapping(request,
57 ComponentDependencyModelEntity.class);
59 modelEntity.setVspId(vspId);
60 modelEntity.setVersion(version);
62 ComponentDependencyModelEntity componentDependency =
63 componentDependencyModelManager.createComponentDependency(modelEntity, vspId, version);
65 MapComponentDependencyEntityToCreationDto mapping =
66 new MapComponentDependencyEntityToCreationDto();
67 ComponentDependencyCreationDto createdComponentDependencyDto = mapping.applyMapping(
68 componentDependency, ComponentDependencyCreationDto.class);
69 return Response.ok(componentDependency != null ? createdComponentDependencyDto : null)
74 public Response list(String vspId, String versionId, String user) {
75 MdcUtil.initMdc(LoggerServiceName.GET_LIST_COMPONENT_DEPENDENCY.toString());
76 Version vspVersion = new Version(versionId);
78 Collection<ComponentDependencyModelEntity> componentDependencies =
79 componentDependencyModelManager.list(vspId, vspVersion);
81 MapComponentDependencyEntityToDto mapper = new MapComponentDependencyEntityToDto();
82 GenericCollectionWrapper<ComponentDependencyResponseDto> results = new GenericCollectionWrapper
84 for (ComponentDependencyModelEntity entity : componentDependencies) {
85 results.add(mapper.applyMapping(entity, ComponentDependencyResponseDto.class));
88 return Response.ok(results).build();
92 public Response delete(String vspId, String versionId, String dependencyId, String user) {
93 MdcUtil.initMdc(LoggerServiceName.DELETE_COMPONENT_DEPENDENCY.toString());
94 Version vspVersion = new Version(versionId);
95 componentDependencyModelManager.delete(vspId, vspVersion, dependencyId);
96 return Response.ok().build();
100 public Response update(ComponentDependencyModel request, String vspId, String versionId, String
101 dependencyId, String user) {
103 MdcUtil.initMdc(LoggerServiceName.UPDATE_COMPONENT_DEPENDENCY.toString());
105 final Version version = new Version(versionId);
106 ComponentDependencyModelEntity modelEntity =
107 new MapComponentDependencyModelRequestToEntity().applyMapping(request,
108 ComponentDependencyModelEntity.class);
110 modelEntity.setId(dependencyId);
111 modelEntity.setVspId(vspId);
112 modelEntity.setVersion(version);
113 componentDependencyModelManager.update(modelEntity);
114 return Response.ok().build();
118 public Response get(String vspId, String version, String dependencyId, String user) {
119 MdcUtil.initMdc(LoggerServiceName.GET_COMPONENT_DEPENDENCY.toString());
120 ComponentDependencyModelEntity componentDependencyModelEntity = componentDependencyModelManager
121 .get(vspId, new Version(version), dependencyId);
123 MapComponentDependencyEntityToDto mapper = new MapComponentDependencyEntityToDto();
124 ComponentDependencyResponseDto componentDependencyResponseDto =
125 mapper.applyMapping(componentDependencyModelEntity, ComponentDependencyResponseDto.class);
127 return Response.ok(componentDependencyModelEntity != null ? componentDependencyResponseDto :