Merge "Logging improvements"
[vid.git] / vid-app-common / src / main / java / org / onap / vid / controllers / AsyncControllerForTests.java
1 package org.onap.vid.controllers;
2
3 import org.onap.vid.exceptions.GenericUncheckedException;
4 import org.onap.vid.model.ExceptionResponse;
5 import org.onap.vid.model.JobBulk;
6 import org.onap.vid.model.JobModel;
7 import org.onap.vid.services.BulkInstantiationService;
8 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.http.ResponseEntity;
10 import org.springframework.web.bind.annotation.*;
11 import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException;
12
13 import javax.ws.rs.WebApplicationException;
14 import java.util.Map;
15 import java.util.UUID;
16
17 import static org.springframework.http.HttpStatus.BAD_REQUEST;
18
19 @RestController
20 @RequestMapping("asyncForTests")
21 public class AsyncControllerForTests extends VidRestrictedBaseController {
22
23     private BulkInstantiationService bulkInstantiationService;
24
25     @Autowired
26     public AsyncControllerForTests(BulkInstantiationService bulkInstantiationService) {
27         this.bulkInstantiationService = bulkInstantiationService;
28     }
29
30     @RequestMapping(method = RequestMethod.POST)
31     public JobBulk createAsyncJob(@RequestBody Map<String, Object> body) {
32         return bulkInstantiationService.saveBulk(body);
33     }
34
35     @RequestMapping(value = "/job/{uuid}", method = RequestMethod.GET)
36     public JobModel getJob(@PathVariable UUID uuid) {
37         return bulkInstantiationService.getJob(uuid);
38     }
39
40     @RequestMapping(value = "/error", method = RequestMethod.GET)
41     public void throwError() {
42         throw new GenericUncheckedException("dummy error");
43     }
44
45     @ExceptionHandler({IllegalArgumentException.class})
46     @ResponseStatus(value=BAD_REQUEST)
47     private ExceptionResponse exceptionHandlerBadRequest(Exception e) {
48         return ControllersUtils.handleException(e, LOGGER);
49     }
50
51     @ExceptionHandler(WebApplicationException.class)
52     private ResponseEntity webApplicationExceptionHandler(WebApplicationException e) {
53         return ControllersUtils.handleWebApplicationException(e, LOGGER);
54     }
55
56 }