IndexController.java
package de.sesqa.ase.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
/**
* Main controller for handling web requests. This includes serving the main page, handling chat
* history, and processing chat messages.
*/
@Controller
public class IndexController {
private static final Logger logger = LoggerFactory.getLogger(IndexController.class);
/** The application version, injected from application properties. */
@Value("${version:unknown}")
private String version;
/** The build hash, injected from application properties. */
@Value("${buildHash:unknown}")
private String buildNumber;
/** Constructs the BaseController with necessary repositories. */
public IndexController() {
logger.info("IndexController initialized:\nversion: {}\nbuildNumber: {}", version, buildNumber);
}
/**
* Serves the main index page.
*
* @param model The Spring UI model to add attributes to.
* @return The name of the view template to render ("index").
*/
@GetMapping("/")
public String index(Model model) {
model.addAttribute("version", version);
model.addAttribute("buildNumber", buildNumber);
return "index";
}
}