UI initial implementation.
[validation.git] / ui / src / main / java / org / akraino / validation / ui / controller / SubmissionController.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");
5  * you may not use this file except in compliance with the License.
6  * You may obtain 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 implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.akraino.validation.ui.controller;
17
18 import java.util.List;
19
20 import org.akraino.validation.ui.entity.Submission;
21 import org.akraino.validation.ui.service.SubmissionService;
22 import org.apache.log4j.Logger;
23 import org.springframework.beans.factory.annotation.Autowired;
24 import org.springframework.http.HttpStatus;
25 import org.springframework.http.ResponseEntity;
26 import org.springframework.web.bind.annotation.DeleteMapping;
27 import org.springframework.web.bind.annotation.GetMapping;
28 import org.springframework.web.bind.annotation.PostMapping;
29 import org.springframework.web.bind.annotation.RequestBody;
30 import org.springframework.web.bind.annotation.RequestMapping;
31 import org.springframework.web.bind.annotation.RestController;
32
33 @RestController
34 @RequestMapping("/api/submission")
35 public class SubmissionController {
36
37     @Autowired
38     SubmissionService service;
39
40     private static final Logger LOGGER = Logger.getLogger(SubmissionController.class);
41
42     @GetMapping("/")
43     public ResponseEntity<List<Submission>> getSubmissions() {
44         try {
45             return new ResponseEntity<>(service.getSubmissions(), HttpStatus.OK);
46         } catch (Exception e) {
47             LOGGER.error(e);
48         }
49         return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
50     }
51
52     @PostMapping("/")
53     public ResponseEntity<Submission> postSubmission(@RequestBody Submission newSubmission) {
54         try {
55             return new ResponseEntity<>(service.saveSubmission(newSubmission), HttpStatus.CREATED);
56         } catch (Exception e) {
57             LOGGER.error(e);
58         }
59         return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
60     }
61
62     @DeleteMapping("/")
63     public ResponseEntity<Boolean> deleteSubmission(@RequestBody Submission submission) {
64         try {
65             service.deleteSubmission(submission.getSubmissionId());
66             return new ResponseEntity<>(true, HttpStatus.OK);
67         } catch (Exception e) {
68             LOGGER.error(e);
69         }
70         return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(false);
71     }
72
73 }