1 package info.mikethomas.fahservices.service;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import info.mikethomas.jfold.Connection;
26 import info.mikethomas.jfold.exceptions.InfoException;
27
28 import io.swagger.v3.oas.annotations.Operation;
29 import io.swagger.v3.oas.annotations.media.ArraySchema;
30 import io.swagger.v3.oas.annotations.media.Content;
31 import io.swagger.v3.oas.annotations.media.Schema;
32 import io.swagger.v3.oas.annotations.responses.ApiResponse;
33 import io.swagger.v3.oas.annotations.tags.Tag;
34
35 import org.springframework.beans.factory.annotation.Autowired;
36 import org.springframework.http.HttpStatus;
37 import org.springframework.http.MediaType;
38 import org.springframework.http.ResponseEntity;
39 import org.springframework.web.bind.annotation.ExceptionHandler;
40 import org.springframework.web.bind.annotation.RequestMapping;
41 import org.springframework.web.bind.annotation.RequestMethod;
42 import org.springframework.web.bind.annotation.ResponseBody;
43 import org.springframework.web.bind.annotation.ResponseStatus;
44 import org.springframework.web.bind.annotation.RestController;
45
46 import java.util.List;
47
48
49
50
51
52
53
54 @RestController("info")
55 @Tag(name = "Info", description = "Print application information.")
56 public class InfoResource {
57
58 @Autowired
59 private Connection connection;
60
61
62
63
64
65
66
67
68 @Operation(summary = "info", description = "Get Info.", responses = {
69 @ApiResponse(responseCode = "200", description = "OK", content = {
70 @Content(array = @ArraySchema(schema = @Schema(implementation = String.class)))
71 })
72 })
73 @RequestMapping(
74 value = "/info",
75 method = RequestMethod.GET,
76 produces = {
77 MediaType.APPLICATION_JSON_VALUE
78 })
79 @ResponseBody
80 public ResponseEntity<List> getInfo() throws InfoException {
81 return new ResponseEntity<>(connection.info(), HttpStatus.OK);
82 }
83
84
85
86
87
88
89
90 @ExceptionHandler(InfoException.class)
91 @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
92 public ResponseEntity<Exception> handleException(Exception ex) {
93 return new ResponseEntity<>(ex, HttpStatus.INTERNAL_SERVER_ERROR);
94 }
95 }