[RECV-94] Separate docker/robot invoking
[validation.git] / ui / src / main / java / org / akraino / validation / ui / controller / JenkinsJobNotificationController.java
1 /*
2  * Copyright (c) 2019 AT&T Intellectual Property. All rights reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License"); you may
5  * not use this file except in compliance with the License. You may obtain
6  * 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
13  * implied. See the License for the specific language governing
14  * permissions and limitations under the License.
15  */
16 package org.akraino.validation.ui.controller;
17
18 import org.akraino.validation.ui.data.JnksJobNotify;
19 import org.akraino.validation.ui.service.JenkinsJobNotificationService;
20 import org.onap.portalsdk.core.controller.RestrictedBaseController;
21 import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
22 import org.onap.portalsdk.core.web.support.UserUtils;
23 import org.springframework.beans.factory.annotation.Autowired;
24 import org.springframework.http.HttpStatus;
25 import org.springframework.http.ResponseEntity;
26 import org.springframework.stereotype.Controller;
27 import org.springframework.web.bind.annotation.RequestBody;
28 import org.springframework.web.bind.annotation.RequestMapping;
29 import org.springframework.web.bind.annotation.RequestMethod;
30
31 @Controller
32 @RequestMapping("/api/jenkinsJobNotification")
33 public class JenkinsJobNotificationController extends RestrictedBaseController {
34
35     @Autowired
36     JenkinsJobNotificationService service;
37
38     private static final EELFLoggerDelegate LOGGER =
39             EELFLoggerDelegate.getLogger(JenkinsJobNotificationController.class);
40
41     public JenkinsJobNotificationController() {
42         super();
43     }
44
45     @RequestMapping(value = {"/"}, method = RequestMethod.POST)
46     public ResponseEntity<Void> handle(@RequestBody JnksJobNotify jnksJobNotify) {
47         try {
48             service.handle(jnksJobNotify);
49             return new ResponseEntity<Void>(HttpStatus.OK);
50         } catch (Exception e) {
51             LOGGER.error(EELFLoggerDelegate.errorLogger,
52                     "Error when trying to process Jenkins notification. " + UserUtils.getStackTrace(e));
53         }
54         return new ResponseEntity<Void>(HttpStatus.INTERNAL_SERVER_ERROR);
55     }
56
57 }