c5621a3073cf87b38e6b625aa869071fa156ce36
[vid.git] / vid-app-common / src / main / java / org / onap / vid / controllers / AsyncInstantiationController.java
1 package org.onap.vid.controllers;
2
3
4 import org.onap.vid.exceptions.OperationNotAllowedException;
5 import org.onap.vid.model.ExceptionResponse;
6
7 import org.apache.commons.lang.StringUtils;
8 import org.apache.commons.lang.exception.ExceptionUtils;
9
10 import org.onap.vid.model.JobAuditStatus;
11 import org.onap.vid.model.ServiceInfo;
12 import org.onap.vid.model.serviceInstantiation.ServiceInstantiation;
13 import org.onap.vid.mso.MsoResponseWrapper2;
14 import org.onap.vid.services.AsyncInstantiationBusinessLogic;
15 import org.springframework.beans.factory.annotation.Autowired;
16 import org.springframework.web.bind.annotation.*;
17 import javax.servlet.http.HttpServletRequest;
18 import java.util.List;
19 import java.util.UUID;
20 import static org.springframework.http.HttpStatus.METHOD_NOT_ALLOWED;
21
22
23 @RestController
24 @RequestMapping(AsyncInstantiationController.ASYNC_INSTANTIATION)
25 public class AsyncInstantiationController extends VidRestrictedBaseController {
26
27     public static final String ASYNC_INSTANTIATION = "asyncInstantiation";
28
29     protected final AsyncInstantiationBusinessLogic asyncInstantiationBL;
30
31     @Autowired
32     public AsyncInstantiationController(AsyncInstantiationBusinessLogic asyncInstantiationBL) {
33         this.asyncInstantiationBL = asyncInstantiationBL;
34     }
35
36     @ExceptionHandler(OperationNotAllowedException.class)
37     @ResponseStatus(value=METHOD_NOT_ALLOWED)
38     public ExceptionResponse illegalStateExceptionHandler(Exception e) {
39         return ControllersUtils.handleException(e, LOGGER);
40     }
41
42     /**
43      * Gets the new services status.
44      * @param request the request
45      * @return the services list
46      */
47     @RequestMapping(method = RequestMethod.GET)
48     public List<ServiceInfo> getServicesInfo(HttpServletRequest request) {
49         return asyncInstantiationBL.getAllServicesInfo();
50     }
51
52     @RequestMapping(value = "bulk", method = RequestMethod.POST)
53     public MsoResponseWrapper2<List<String>> createBulkOfServices(@RequestBody ServiceInstantiation request, HttpServletRequest httpServletRequest) {
54         //Push to DB according the model
55
56         String userId = ControllersUtils.extractUserId(httpServletRequest);
57         List<UUID> uuids =  asyncInstantiationBL.pushBulkJob(request, userId);
58
59         return new MsoResponseWrapper2(200, uuids);
60     }
61
62     @RequestMapping(value = "job/{jobId}", method = RequestMethod.DELETE)
63     public void deleteServiceInfo(@PathVariable("jobId") UUID jobId) {
64         asyncInstantiationBL.deleteJob(jobId);
65     }
66
67     @RequestMapping(value = "hide/{jobId}", method = RequestMethod.POST)
68     public void hideServiceInfo(@PathVariable("jobId") UUID jobId) {
69         asyncInstantiationBL.hideServiceInfo(jobId);
70     }
71
72     @RequestMapping(value = "auditStatus/{jobId}", method = RequestMethod.GET)
73     public List<JobAuditStatus> getJobAuditStatus(HttpServletRequest request, @PathVariable(value="jobId") UUID jobId, @RequestParam(value="source") JobAuditStatus.SourceStatus source){
74         return asyncInstantiationBL.getAuditStatuses(jobId, source);
75     }
76
77
78 }