eab5e3e892610269ae658d51c4e1859b68486b6b
[sdc.git] /
1 /*
2  * Copyright © 2016-2017 European Support Limited
3  *
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
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16
17 package org.openecomp.sdcrests.vsp.rest.services;
18
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;
35
36 import javax.inject.Named;
37 import javax.ws.rs.core.Response;
38 import java.util.Collection;
39
40 @Named
41 @Service("componentDependencies")
42 @Scope(value = "prototype")
43 public class ComponentDependenciesImpl implements ComponentDependencies {
44
45   private final ComponentDependencyModelManager componentDependencyModelManager =
46       ComponentDependencyModelManagerFactory.getInstance().createInterface();
47
48   @Override
49   public Response create(ComponentDependencyModel request, String vspId, String versionId,
50                          String user) {
51     MdcUtil.initMdc(LoggerServiceName.CREATE_COMPONENT_DEPENDENCY_MODEL.toString());
52
53     final Version version = new Version(versionId);
54
55     ComponentDependencyModelEntity modelEntity =
56         new MapComponentDependencyModelRequestToEntity().applyMapping(request,
57             ComponentDependencyModelEntity.class);
58
59     modelEntity.setVspId(vspId);
60     modelEntity.setVersion(version);
61
62     ComponentDependencyModelEntity componentDependency =
63         componentDependencyModelManager.createComponentDependency(modelEntity, vspId, version);
64
65     MapComponentDependencyEntityToCreationDto mapping =
66         new MapComponentDependencyEntityToCreationDto();
67     ComponentDependencyCreationDto createdComponentDependencyDto = mapping.applyMapping(
68         componentDependency, ComponentDependencyCreationDto.class);
69     return Response.ok(componentDependency != null ? createdComponentDependencyDto : null)
70         .build();
71   }
72
73   @Override
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);
77
78     Collection<ComponentDependencyModelEntity> componentDependencies =
79         componentDependencyModelManager.list(vspId, vspVersion);
80
81     MapComponentDependencyEntityToDto mapper = new MapComponentDependencyEntityToDto();
82     GenericCollectionWrapper<ComponentDependencyResponseDto> results = new GenericCollectionWrapper
83         <>();
84     for (ComponentDependencyModelEntity entity : componentDependencies) {
85       results.add(mapper.applyMapping(entity, ComponentDependencyResponseDto.class));
86     }
87
88     return Response.ok(results).build();
89   }
90
91   @Override
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();
97   }
98
99   @Override
100   public Response update(ComponentDependencyModel request, String vspId, String versionId, String
101       dependencyId, String user) {
102
103     MdcUtil.initMdc(LoggerServiceName.UPDATE_COMPONENT_DEPENDENCY.toString());
104
105     final Version version = new Version(versionId);
106     ComponentDependencyModelEntity modelEntity =
107         new MapComponentDependencyModelRequestToEntity().applyMapping(request,
108             ComponentDependencyModelEntity.class);
109
110     modelEntity.setId(dependencyId);
111     modelEntity.setVspId(vspId);
112     modelEntity.setVersion(version);
113     componentDependencyModelManager.update(modelEntity);
114     return Response.ok().build();
115   }
116
117   @Override
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);
122
123     MapComponentDependencyEntityToDto mapper = new MapComponentDependencyEntityToDto();
124     ComponentDependencyResponseDto componentDependencyResponseDto =
125         mapper.applyMapping(componentDependencyModelEntity, ComponentDependencyResponseDto.class);
126
127     return Response.ok(componentDependencyModelEntity != null ? componentDependencyResponseDto :
128         null).build();
129   }
130
131 }