EnvironmentController.java

package access.api;

import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.ClassPathResource;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Map;

@RestController
public class EnvironmentController {

    private final String disclaimerBackgroundColor;
    private final String disclaimerContent;

    public EnvironmentController(@Value("${gui.disclaimer.background-color}") String disclaimerBackgroundColor,
                                 @Value("${gui.disclaimer.content}") String disclaimerContent) {
        this.disclaimerBackgroundColor = disclaimerBackgroundColor;
        this.disclaimerContent = disclaimerContent;
    }

    @GetMapping("/api/v1/disclaimer")
    public void disclaimer(HttpServletResponse response) throws IOException {
        response.setContentType("text/css");
        response.getWriter().write("body::after {background: " + disclaimerBackgroundColor + ";content: \"" +
                disclaimerContent + "\";}");
        response.getWriter().flush();

    }

    @GetMapping("/api/v1/changelog")
    public ResponseEntity<Map<String, String>> changelog() throws IOException {
        String markdown = new String(new ClassPathResource("/Changelog.md").getInputStream().readAllBytes(), StandardCharsets.UTF_8);
        return ResponseEntity.ok(Map.of("markdown", markdown));
    }

}