Ignore:
Timestamp:
01/16/22 15:29:49 (2 years ago)
Author:
Petar Partaloski <ppartaloski@…>
Branches:
main
Children:
7bc8942
Parents:
7a0bf79
Message:

Controller, Repository and Service layer improvements, Entity updating

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/com/wediscussmovies/project/web/controller/UserController.java

    r7a0bf79 r2a5d6a3  
    11package com.wediscussmovies.project.web.controller;
    22
     3import com.wediscussmovies.project.model.User;
     4import com.wediscussmovies.project.model.exception.InvalidUserCredentialsException;
     5import com.wediscussmovies.project.service.UserService;
    36import org.springframework.stereotype.Controller;
     7import org.springframework.ui.Model;
     8import org.springframework.web.bind.annotation.GetMapping;
     9import org.springframework.web.bind.annotation.PostMapping;
     10import org.springframework.web.bind.annotation.RequestMapping;
     11import org.springframework.web.bind.annotation.RequestParam;
     12
     13import javax.servlet.http.HttpServletRequest;
     14import java.util.Optional;
    415
    516@Controller
     17@RequestMapping("/")
    618public class UserController {
     19    private final UserService userService;
     20
     21    public UserController(UserService userService) {
     22        this.userService = userService;
     23    }
     24
     25    @GetMapping("/login")
     26    public String getLoginPage(){
     27       return "login";
     28    }
     29
     30    @PostMapping("/login/confirm")
     31    public String confirmLogin(HttpServletRequest request, Model model){
     32        Optional<User> user;
     33        try{
     34            user = this.userService.login(request.getParameter("username"), request.getParameter("password"));
     35            request.getSession().setAttribute("user", user);
     36            request.getSession().setAttribute("loggedIn",true);
     37            return "redirect:/movies";
     38        }
     39        catch (InvalidUserCredentialsException ex){
     40            model.addAttribute("hasError", true);
     41            model.addAttribute("error", ex.getMessage());
     42            return "login";
     43        }
     44    }
     45
     46    @GetMapping("/register")
     47    public String getRegisterPage(){
     48        return "register";
     49    }
     50
     51    @PostMapping("/login/confirm")
     52    public String confirmRegister(HttpServletRequest request,
     53                                  @RequestParam String username,
     54                                  @RequestParam String email,
     55                                  @RequestParam String password,
     56                                  @RequestParam String confirmPassword,
     57                                  @RequestParam String name,
     58                                  @RequestParam String surname){
     59        Optional<User> user;
     60        user = this.userService.register(request, email, password, confirmPassword, username, name, surname);
     61        if(user.isEmpty()){
     62            request.setAttribute("hasError", "true");
     63        }else{
     64            request.setAttribute("hasError", "false");
     65        }
     66        request.getSession().setAttribute("user", user.get());
     67        request.getSession().setAttribute("loggedIn",true);
     68        return "redirect:/movies";
     69    }
     70
     71    @GetMapping
     72    public String logout(HttpServletRequest request){
     73        request.getSession().invalidate();
     74        return "redirect:/login";
     75    }
    776}
Note: See TracChangeset for help on using the changeset viewer.