ViewController.java

package org.flasby.christmas;

import org.flasby.entity.Authority;
import org.flasby.security.AssertAuthority;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.fasterxml.jackson.core.JsonProcessingException;

import lombok.extern.log4j.Log4j2;

@Log4j2
@Controller
public class ViewController {

    // @Autowired
    // private PresentsRepository pr;

    public static final String ADMIN_PAGE = "admin";

    public ViewController() {
        log.debug("Starting the ViewController");
    }

    // Login form
    @GetMapping("/login.html")
    public String loginX() {
        return "login.html";
    }

    // Loggedout
    @GetMapping("/loggedout.html")
    public String loggedOut() {
        return "loggedout.html";
    }

    @GetMapping("/error")
    public String error() {
        return "error";
    }

    @GetMapping("/login")
    public String login() {
        return "login";
    }

    @GetMapping({ "/index", "/" })
    public String index() throws JsonProcessingException {
        // goat.pushDataEverywhere("changed", getPresentsAsJSON());
        return "index";
    }

    @GetMapping({ "/forgotPassword" })
    public String forgotPassword() {
        return "forgotPassword";
    }

    // @RolesAllowed("ADMIN")
    @GetMapping({ "/" + ADMIN_PAGE })
    public String admin(Model model) {

        AssertAuthority.in(Authority.ADMIN);

        return ADMIN_PAGE;
    }

    @GetMapping(path = "/http-ping", produces = "application/json")
    @ResponseBody
    public String httpPing() {
        // session.setMaxInactiveInterval(10 * 60); // 10 Minutes
        return "{\"pong\":" + System.currentTimeMillis() + "}";
    }

    @PostMapping(path = "/resetPassword")
    public String resetPassword(String userId) {
        log.error("restPassword not implemented");
        return "passwordReset";
    }

    @GetMapping(path = "/shoppingList")
    public String shoppingList(String userId) {
        return "shoppingList";
    }
}