DCAE-D be initial commit
[sdc/dcae-d/dt-be-main.git] / dcaedt_be / src / main / java / org / onap / sdc / dcae / composition / controller / ConfigurationController.java
1 package org.onap.sdc.dcae.composition.controller;
2
3 import java.util.ArrayList;
4 import java.util.List;
5 import java.util.Set;
6
7 import org.onap.sdc.common.onaplog.Enums.LogLevel;
8 import org.onap.sdc.dcae.composition.CompositionConfig;
9 import org.onap.sdc.dcae.errormng.ActionStatus;
10 import org.onap.sdc.dcae.errormng.ErrConfMgr;
11 import org.onap.sdc.dcae.ves.VesStructureLoader;
12 import org.springframework.beans.factory.annotation.Autowired;
13 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
14 import org.springframework.http.HttpStatus;
15 import org.springframework.http.ResponseEntity;
16 import org.springframework.web.bind.annotation.CrossOrigin;
17 import org.springframework.web.bind.annotation.RequestMapping;
18 import org.springframework.web.bind.annotation.RequestMethod;
19 import org.springframework.web.bind.annotation.RestController;
20
21 import io.swagger.annotations.ApiOperation;
22 import io.swagger.annotations.ApiResponse;
23 import io.swagger.annotations.ApiResponses;
24
25 @RestController
26 @EnableAutoConfiguration
27 @CrossOrigin
28 @RequestMapping("/conf")
29 public class ConfigurationController extends BaseController{
30
31     @Autowired
32     private CompositionConfig compositionConfig;
33
34     @ApiOperation(value = "Get a list of available flow types", response = CompositionConfig.class)
35     @ApiResponses(value = {
36                 @ApiResponse(code = 200, message = "Successfully retrieved available flow types list"),
37                 @ApiResponse(code = 500, message = "Flow types couldn't be fetched due to internal error")})
38     @RequestMapping(value = "/composition", method = RequestMethod.GET)
39     public ResponseEntity getCompositionConfig() {
40         try {
41             return new ResponseEntity<>(compositionConfig, HttpStatus.OK);
42         }catch (Exception e) {
43             debugLogger.log(LogLevel.DEBUG, this.getClass().getName(),"Exception:{}",e);
44             return ErrConfMgr.INSTANCE.buildErrorResponse(ActionStatus.FLOW_TYPES_CONFIGURATION_ERROR);
45         }
46     }
47
48     @RequestMapping(value = "/ves/schemaversions", method = RequestMethod.GET)
49     public ResponseEntity getCommonEventFormatVersion() {
50         try {
51             Set<String> availableVersionsSet = VesStructureLoader.getAvailableVersionsList();
52             List<String> availableVersionsList = new ArrayList<>(availableVersionsSet.size());
53             availableVersionsList.addAll(availableVersionsSet);
54             debugLogger.log(LogLevel.DEBUG, this.getClass().getName(), "Got a request to return available ves schema versions: {}", availableVersionsSet);
55             return new ResponseEntity<>(availableVersionsList, HttpStatus.OK);
56         }catch (Exception e) {
57             debugLogger.log(LogLevel.DEBUG, this.getClass().getName(),"Exception:{}",e);
58             return ErrConfMgr.INSTANCE.buildErrorResponse(ActionStatus.VES_SCHEMA_NOT_FOUND);
59         }
60     }
61
62
63 }