59d082bb61518d21e78394a72080033c35cc62cb
[sdnc/apps.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SDNC
4  * ================================================================================
5  * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.sdnc.apps.ms.gra.controllers;
22
23 import com.fasterxml.jackson.annotation.JsonInclude;
24 import com.fasterxml.jackson.core.JsonProcessingException;
25 import com.fasterxml.jackson.databind.ObjectMapper;
26 import org.onap.sdnc.apps.ms.gra.data.ConfigPreloadData;
27 import org.onap.sdnc.apps.ms.gra.data.ConfigPreloadDataRepository;
28 import org.onap.sdnc.apps.ms.gra.data.ConfigServices;
29 import org.onap.sdnc.apps.ms.gra.data.ConfigServicesRepository;
30 import org.onap.sdnc.apps.ms.gra.swagger.ConfigApi;
31 import org.onap.sdnc.apps.ms.gra.swagger.model.*;
32 import org.slf4j.Logger;
33 import org.slf4j.LoggerFactory;
34 import org.springframework.beans.factory.annotation.Autowired;
35 import org.springframework.boot.autoconfigure.domain.EntityScan;
36 import org.springframework.context.annotation.ComponentScan;
37 import org.springframework.http.HttpStatus;
38 import org.springframework.http.ResponseEntity;
39 import org.springframework.stereotype.Controller;
40
41 import javax.servlet.http.HttpServletRequest;
42 import javax.validation.Valid;
43 import java.util.Iterator;
44 import java.util.List;
45 import java.util.Optional;
46
47 @Controller
48 @ComponentScan(basePackages = {"org.onap.sdnc.apps.ms.gra.*"})
49 @EntityScan("org.onap.sdnc.apps.ms.gra.springboot.*")
50 public class ConfigApiController implements ConfigApi {
51     private static final Logger log = LoggerFactory.getLogger(ConfigApiController.class);
52
53     private final ObjectMapper objectMapper;
54
55     private final HttpServletRequest request;
56
57     @Autowired
58     private ConfigPreloadDataRepository configPreloadDataRepository;
59
60     @Autowired
61     private ConfigServicesRepository configServicesRepository;
62
63     @Autowired
64     public ConfigApiController(ObjectMapper objectMapper, HttpServletRequest request) {
65         objectMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
66         objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
67         this.objectMapper = objectMapper;
68         this.request = request;
69     }
70
71     @Override
72     public Optional<ObjectMapper> getObjectMapper() {
73         return Optional.ofNullable(objectMapper);
74     }
75
76     @Override
77     public Optional<HttpServletRequest> getRequest() {
78         return Optional.ofNullable(request);
79     }
80
81     @Override
82     public ResponseEntity<Void> configGENERICRESOURCEAPIpreloadInformationDelete() {
83         configPreloadDataRepository.deleteAll();
84         return (new ResponseEntity<>(HttpStatus.OK));
85     }
86
87     @Override
88     public ResponseEntity<GenericResourceApiPreloadModelInformation> configGENERICRESOURCEAPIpreloadInformationGet() {
89         GenericResourceApiPreloadModelInformation genericResourceApiPreloadModelInformation = new GenericResourceApiPreloadModelInformation();
90
91         configPreloadDataRepository.findAll().forEach(configPreloadData -> {
92             GenericResourceApiPreloadmodelinformationPreloadList preloadListItem = new GenericResourceApiPreloadmodelinformationPreloadList();
93
94             preloadListItem.setPreloadId(configPreloadData.getPreloadId());
95             preloadListItem.setPreloadType(configPreloadData.getPreloadType());
96             try {
97                 preloadListItem.setPreloadData(objectMapper.readValue(configPreloadData.getPreloadData(), GenericResourceApiPreloaddataPreloadData.class));
98             } catch (JsonProcessingException e) {
99                 log.error("Could not convert preload data", e);
100             }
101             genericResourceApiPreloadModelInformation.addPreloadListItem(preloadListItem);
102         });
103
104
105         return new ResponseEntity<>(genericResourceApiPreloadModelInformation, HttpStatus.OK);
106     }
107
108     @Override
109     public ResponseEntity<Void> configGENERICRESOURCEAPIpreloadInformationPost(@Valid GenericResourceApiPreloadModelInformation graPreloadModelInfo) {
110
111         List<GenericResourceApiPreloadmodelinformationPreloadList> preloadList = graPreloadModelInfo.getPreloadList();
112
113         if (preloadList != null) {
114             Iterator<GenericResourceApiPreloadmodelinformationPreloadList> iter = preloadList.iterator();
115             while (iter.hasNext()) {
116                 GenericResourceApiPreloadmodelinformationPreloadList curItem = iter.next();
117
118                 // Remove any entries already existing for this preloadId/preloadType
119                configPreloadDataRepository.deleteByPreloadIdAndPreloadType(curItem.getPreloadId(), curItem.getPreloadType());
120
121                 try {
122                     configPreloadDataRepository.save(new ConfigPreloadData(curItem.getPreloadId(), curItem.getPreloadType(), objectMapper.writeValueAsString(curItem.getPreloadData())));
123                 } catch (JsonProcessingException e) {
124                     log.error("Cannot convert preload data", e);
125                 }
126             }
127         }
128
129         return new ResponseEntity<>(HttpStatus.OK);
130     }
131
132     @Override
133     public ResponseEntity<Void> configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPost(@Valid GenericResourceApiPreloadmodelinformationPreloadList preloadListItem) {
134
135         // Remove any entries already existing for this preloadId/preloadType
136         configPreloadDataRepository.deleteByPreloadIdAndPreloadType(preloadListItem.getPreloadId(), preloadListItem.getPreloadType());
137
138         try {
139             configPreloadDataRepository.save(new ConfigPreloadData(preloadListItem.getPreloadId(), preloadListItem.getPreloadType(), objectMapper.writeValueAsString(preloadListItem.getPreloadData())));
140         } catch (JsonProcessingException e) {
141             log.error("Cannot convert preload data", e);
142         }
143         return new ResponseEntity<>(HttpStatus.OK);
144     }
145
146     @Override
147     public ResponseEntity<Void> configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPreloadIdPreloadTypeDelete(String preloadId, String preloadType) {
148         configPreloadDataRepository.deleteByPreloadIdAndPreloadType(preloadId, preloadType);
149         return new ResponseEntity<>(HttpStatus.OK);
150     }
151
152     @Override
153     public ResponseEntity<GenericResourceApiPreloadmodelinformationPreloadList> configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPreloadIdPreloadTypeGet(String preloadId, String preloadType) {
154         List<ConfigPreloadData> preloadData = configPreloadDataRepository.findByPreloadIdAndPreloadType(preloadId, preloadType);
155         if (preloadData != null) {
156             if (!preloadData.isEmpty()) {
157                 ConfigPreloadData preloadDataItem = preloadData.get(0);
158                 GenericResourceApiPreloadmodelinformationPreloadList preloadDataList = new GenericResourceApiPreloadmodelinformationPreloadList();
159                 preloadDataList.setPreloadId(preloadDataItem.getPreloadId());
160                 preloadDataList.setPreloadType(preloadDataItem.getPreloadType());
161                 try {
162                     preloadDataList.setPreloadData(objectMapper.readValue(preloadDataItem.getPreloadData(), GenericResourceApiPreloaddataPreloadData.class));
163                 } catch (JsonProcessingException e) {
164                     log.error("Cannot convert preload data", e);
165                 }
166                 return new ResponseEntity<>(preloadDataList, HttpStatus.OK);
167             }
168         }
169         return new ResponseEntity<>(HttpStatus.NOT_FOUND);
170     }
171
172     @Override
173     public ResponseEntity<Void> configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPreloadIdPreloadTypePost(String preloadId, String preloadType, @Valid GenericResourceApiPreloadmodelinformationPreloadList preloadListItem) {
174         configPreloadDataRepository.deleteByPreloadIdAndPreloadType(preloadId, preloadType);
175         try {
176             configPreloadDataRepository.save(new ConfigPreloadData(preloadId, preloadType, objectMapper.writeValueAsString(preloadListItem.getPreloadData())));
177         } catch (JsonProcessingException e) {
178             log.error("Cannot convert preload data", e);
179         }
180         return new ResponseEntity<>(HttpStatus.OK);
181     }
182
183
184     @Override
185     public ResponseEntity<Void> configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPreloadIdPreloadTypeGENERICRESOURCEAPIpreloadDataDelete(String preloadId, String preloadType) {
186         List<ConfigPreloadData> preloadData = configPreloadDataRepository.findByPreloadIdAndPreloadType(preloadId, preloadType);
187
188         if (preloadData != null) {
189             Iterator<ConfigPreloadData> iter = preloadData.iterator();
190
191             while (iter.hasNext()) {
192                 configPreloadDataRepository.delete(iter.next());
193             }
194         }
195         return new ResponseEntity<>(HttpStatus.OK);
196     }
197
198     @Override
199     public ResponseEntity<Void> configGENERICRESOURCEAPIpreloadInformationPut(@Valid GenericResourceApiPreloadModelInformation genericResourceApiPreloadModelInformationBodyParam) {
200         return null;
201     }
202
203     @Override
204     public ResponseEntity<GenericResourceApiPreloaddataPreloadData> configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPreloadIdPreloadTypeGENERICRESOURCEAPIpreloadDataGet(String preloadId, String preloadType) {
205         List<ConfigPreloadData> preloadData = configPreloadDataRepository.findByPreloadIdAndPreloadType(preloadId, preloadType);
206         if (preloadData != null) {
207             if (!preloadData.isEmpty()) {
208                 ConfigPreloadData preloadDataItem = preloadData.get(0);
209                 try {
210                     return new ResponseEntity<>(objectMapper.readValue(preloadDataItem.getPreloadData(), GenericResourceApiPreloaddataPreloadData.class), HttpStatus.OK);
211                 } catch (JsonProcessingException e) {
212                     log.error("Cannot convert preload data", e);
213                 }
214             }
215         }
216         return new ResponseEntity<>(HttpStatus.NOT_FOUND);
217     }
218
219     @Override
220     public ResponseEntity<Void> configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPreloadIdPreloadTypeGENERICRESOURCEAPIpreloadDataPost(String preloadId, String preloadType, @Valid GenericResourceApiPreloaddataPreloadData preloadData) {
221         configPreloadDataRepository.deleteByPreloadIdAndPreloadType(preloadId, preloadType);
222         try {
223             configPreloadDataRepository.save(new ConfigPreloadData(preloadId, preloadType, objectMapper.writeValueAsString(preloadData)));
224         } catch (JsonProcessingException e) {
225             log.error("Cannot convert preload data", e);
226         }
227         return new ResponseEntity<>(HttpStatus.OK);
228     }
229
230     @Override
231     public ResponseEntity<Void> configGENERICRESOURCEAPIservicesDelete() {
232         configServicesRepository.deleteAll();
233         return new ResponseEntity<>(HttpStatus.OK);
234     }
235
236     @Override
237     public ResponseEntity<Void> configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIservicePost(@Valid GenericResourceApiServicemodelinfrastructureService servicesData) {
238         String svcInstanceId = servicesData.getServiceInstanceId();
239         try {
240             String svcData = objectMapper.writeValueAsString(servicesData.getServiceData());
241             ConfigServices configService = new ConfigServices(svcInstanceId, svcData, servicesData.getServiceStatus());
242             configServicesRepository.deleteBySvcInstanceId(svcInstanceId);
243             configServicesRepository.save(configService);
244         } catch (JsonProcessingException e) {
245            log.error("Cannot convert service data", e);
246         }
247         return new ResponseEntity<>(HttpStatus.OK);
248     }
249
250     @Override
251     public ResponseEntity<Void> configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdDelete(String serviceInstanceId) {
252         configServicesRepository.deleteBySvcInstanceId(serviceInstanceId);
253         return new ResponseEntity<>(HttpStatus.OK);
254     }
255
256     @Override
257     public ResponseEntity<Void> configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataDelete(String serviceInstanceId) {
258         return null;
259     }
260
261     @Override
262     public ResponseEntity<GenericResourceApiServicedataServiceData> configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataGet(String serviceInstanceId) {
263         return null;
264     }
265
266     @Override
267     public ResponseEntity<Void> configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataPost(String serviceInstanceId, @Valid GenericResourceApiServicedataServiceData genericResourceApiServicedataServiceDataBodyParam) {
268         return null;
269     }
270
271     @Override
272     public ResponseEntity<Void> configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataPut(String serviceInstanceId, @Valid GenericResourceApiServicedataServiceData genericResourceApiServicedataServiceDataBodyParam) {
273         return null;
274     }
275
276     @Override
277     public ResponseEntity<Void> configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceStatusDelete(String serviceInstanceId) {
278         return null;
279     }
280
281     @Override
282     public ResponseEntity<GenericResourceApiServicestatusServiceStatus> configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceStatusGet(String serviceInstanceId) {
283         return null;
284     }
285
286     @Override
287     public ResponseEntity<Void> configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceStatusPost(String serviceInstanceId, @Valid GenericResourceApiServicestatusServiceStatus genericResourceApiServicestatusServiceStatusBodyParam) {
288         return null;
289     }
290
291     @Override
292     public ResponseEntity<Void> configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceStatusPut(String serviceInstanceId, @Valid GenericResourceApiServicestatusServiceStatus genericResourceApiServicestatusServiceStatusBodyParam) {
293         return null;
294     }
295
296     @Override
297     public ResponseEntity<GenericResourceApiServicemodelinfrastructureService> configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGet(String serviceInstanceId) {
298         return null;
299     }
300
301     @Override
302     public ResponseEntity<Void> configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdPost(String serviceInstanceId, @Valid GenericResourceApiServicemodelinfrastructureService genericResourceApiServicemodelinfrastructureServiceBodyParam) {
303         return null;
304     }
305
306     @Override
307     public ResponseEntity<Void> configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdPut(String serviceInstanceId, @Valid GenericResourceApiServicemodelinfrastructureService genericResourceApiServicemodelinfrastructureServiceBodyParam) {
308         return null;
309     }
310
311     @Override
312     public ResponseEntity<GenericResourceApiServiceModelInfrastructure> configGENERICRESOURCEAPIservicesGet() {
313         return null;
314     }
315
316     @Override
317     public ResponseEntity<Void> configGENERICRESOURCEAPIservicesPost(@Valid GenericResourceApiServiceModelInfrastructure genericResourceApiServiceModelInfrastructureBodyParam) {
318         return null;
319     }
320
321     @Override
322     public ResponseEntity<Void> configGENERICRESOURCEAPIservicesPut(@Valid GenericResourceApiServiceModelInfrastructure genericResourceApiServiceModelInfrastructureBodyParam) {
323         return null;
324     }
325 }