diff --git a/src/main/java/com/landvibe/landlog/controller/BlogController.java b/src/main/java/com/landvibe/landlog/controller/BlogController.java index c91c0c6..796e6dd 100644 --- a/src/main/java/com/landvibe/landlog/controller/BlogController.java +++ b/src/main/java/com/landvibe/landlog/controller/BlogController.java @@ -29,80 +29,49 @@ public BlogController(MemberService memberService, BlogService blogService) { @GetMapping public String blogForm(@RequestParam("creatorId") Long creatorId, Model model) { - try { - Member member = memberService.findById(creatorId); - List blogList = blogService.findAllBlogs(creatorId); - model.addAttribute("name", member.getName()); - model.addAttribute("creatorId", creatorId); - model.addAttribute("blogs", blogList); - return "/blogs/blogList"; - } catch (Exception e) { - System.out.println(e.getMessage()); - return "redirect:/"; - } - + Member member = memberService.findById(creatorId); + List blogList = blogService.findAllBlogs(creatorId); + model.addAttribute("name", member.getName()); + model.addAttribute("creatorId", creatorId); + model.addAttribute("blogs", blogList); + return "/blogs/blogList"; } @GetMapping("/new") public String createBlogForm(@RequestParam("creatorId") Long creatorId, Model model) { - try { - Member member = memberService.findById(creatorId); - model.addAttribute("name", member.getName()); - model.addAttribute("creatorId", creatorId); - return "blogs/createBlogForm"; - } catch (Exception e) { - System.out.println(e.getMessage()); - return "redirect:/"; - } + Member member = memberService.findById(creatorId); + model.addAttribute("name", member.getName()); + model.addAttribute("creatorId", creatorId); + return "blogs/createBlogForm"; } @PostMapping("/new") public String createBlog(BlogCreateForm form, @RequestParam("creatorId") Long creatorId) { - try { - blogService.createBlog(creatorId, form); - return "redirect:/blogs?creatorId=" + creatorId; - } catch (Exception e) { - System.out.println(e.getMessage()); - return "redirect:/"; - } + blogService.createBlog(creatorId, form); + return "redirect:/blogs?creatorId=" + creatorId; } @GetMapping("/update") public String updateBlogForm(@RequestParam("blogId") Long blogId, @RequestParam("creatorId") Long creatorId, Model model) { - try { - Member member = memberService.findById(creatorId); - model.addAttribute("name", member.getName()); - model.addAttribute("creatorId", creatorId); - model.addAttribute("blogId", blogId); - return "blogs/updateBlogForm"; - } catch (Exception e) { - System.out.println(e.getMessage()); - return "redirect:/"; - } + Member member = memberService.findById(creatorId); + model.addAttribute("name", member.getName()); + model.addAttribute("creatorId", creatorId); + model.addAttribute("blogId", blogId); + return "blogs/updateBlogForm"; } @PatchMapping("/update") public String updateBlog(@RequestParam("creatorId") Long creatorId, @RequestParam("id") Long id, BlogUpdateForm form) { - try { - blogService.update(id, form); - return "redirect:/blogs?creatorId=" + creatorId; - } catch (Exception e) { - System.out.println(e.getMessage()); - return "redirect:/"; - } + blogService.update(id, form); + return "redirect:/blogs?creatorId=" + creatorId; } @DeleteMapping("/delete") public String deleteBlog(@RequestParam("blogId") Long blogId, @RequestParam("creatorId") Long creatorId) { - try { - blogService.delete(blogId); - return "redirect:/blogs?creatorId=" + creatorId; - } catch (Exception e) { - System.out.println(e.getMessage()); - return "redirect:/"; - } + blogService.delete(blogId); + return "redirect:/blogs?creatorId=" + creatorId; } } diff --git a/src/main/java/com/landvibe/landlog/controller/MemberController.java b/src/main/java/com/landvibe/landlog/controller/MemberController.java index 4105439..7f2c562 100644 --- a/src/main/java/com/landvibe/landlog/controller/MemberController.java +++ b/src/main/java/com/landvibe/landlog/controller/MemberController.java @@ -20,22 +20,18 @@ public MemberController(MemberService memberService) { this.memberService = memberService; } - @GetMapping(value = "/new") + @GetMapping("/new") public String createForm() { return "members/createMemberForm"; } - @PostMapping(value = "/new") + @PostMapping("/new") public String create(MemberForm form) { - try { - memberService.join(form); - return "redirect:/"; - } catch (IllegalStateException e) { - return "redirect:/members/new"; - } + memberService.join(form); + return "redirect:/members/login"; } - @GetMapping() + @GetMapping public String list(Model model) { List members = memberService.findMembers(); model.addAttribute("members", members); @@ -49,16 +45,9 @@ public String loginForm() { @PostMapping("/login") public String login(LoginForm form) { - - try { - Member loginMember = memberService.login(form); - return "redirect:/blogs?creatorId=" + loginMember.getId(); - } catch (IllegalStateException e) { - return "redirect:/"; - } - + Member loginMember = memberService.login(form); + return "redirect:/blogs?creatorId=" + loginMember.getId(); } - } diff --git a/src/main/java/com/landvibe/landlog/exception/BlogNotFoundException.java b/src/main/java/com/landvibe/landlog/exception/BlogNotFoundException.java new file mode 100644 index 0000000..13a5c4f --- /dev/null +++ b/src/main/java/com/landvibe/landlog/exception/BlogNotFoundException.java @@ -0,0 +1,10 @@ +package com.landvibe.landlog.exception; + +public class BlogNotFoundException extends RuntimeException { + + private String message; + + public BlogNotFoundException(String message) { + this.message = message; + } +} diff --git a/src/main/java/com/landvibe/landlog/exception/LoginFailException.java b/src/main/java/com/landvibe/landlog/exception/LoginFailException.java new file mode 100644 index 0000000..f415689 --- /dev/null +++ b/src/main/java/com/landvibe/landlog/exception/LoginFailException.java @@ -0,0 +1,10 @@ +package com.landvibe.landlog.exception; + +public class LoginFailException extends RuntimeException { + + private String message; + + public LoginFailException(String message) { + this.message = message; + } +} diff --git a/src/main/java/com/landvibe/landlog/exception/MemberNotFoundException.java b/src/main/java/com/landvibe/landlog/exception/MemberNotFoundException.java new file mode 100644 index 0000000..f91b7ed --- /dev/null +++ b/src/main/java/com/landvibe/landlog/exception/MemberNotFoundException.java @@ -0,0 +1,10 @@ +package com.landvibe.landlog.exception; + +public class MemberNotFoundException extends RuntimeException { + + private String message; + + public MemberNotFoundException(String message) { + this.message = message; + } +} diff --git a/src/main/java/com/landvibe/landlog/service/BlogService.java b/src/main/java/com/landvibe/landlog/service/BlogService.java index 085a55c..cd471b1 100644 --- a/src/main/java/com/landvibe/landlog/service/BlogService.java +++ b/src/main/java/com/landvibe/landlog/service/BlogService.java @@ -1,6 +1,7 @@ package com.landvibe.landlog.service; import com.landvibe.landlog.domain.Blog; +import com.landvibe.landlog.exception.BlogNotFoundException; import com.landvibe.landlog.form.BlogCreateForm; import com.landvibe.landlog.form.BlogUpdateForm; import com.landvibe.landlog.repository.BlogRespository; @@ -33,7 +34,7 @@ public List findAllBlogs(Long creatorId) { public Blog findBlogById(Long blogId) { return blogRespository.findByBlogId(blogId) - .orElseThrow(() -> new IllegalStateException("해당하는 블로그를 찾을 수 없습니다.")); + .orElseThrow(() -> new BlogNotFoundException("해당하는 블로그를 찾을 수 없습니다.")); } public Long update(Long id, BlogUpdateForm form) { diff --git a/src/main/java/com/landvibe/landlog/service/MemberService.java b/src/main/java/com/landvibe/landlog/service/MemberService.java index 9ce975e..51dbfc4 100644 --- a/src/main/java/com/landvibe/landlog/service/MemberService.java +++ b/src/main/java/com/landvibe/landlog/service/MemberService.java @@ -1,6 +1,8 @@ package com.landvibe.landlog.service; import com.landvibe.landlog.domain.Member; +import com.landvibe.landlog.exception.LoginFailException; +import com.landvibe.landlog.exception.MemberNotFoundException; import com.landvibe.landlog.form.LoginForm; import com.landvibe.landlog.form.MemberForm; import com.landvibe.landlog.repository.MemberRepository; @@ -26,7 +28,7 @@ public Long join(MemberForm form) { .password(password) .email(email) .build(); - validateDuplicateMember(member); //중복 회원 검증 + validateDuplicateMember(member); memberRepository.save(member); return member.getId(); } @@ -46,14 +48,14 @@ public List findMembers() { public Member findById(Long memberId) { Optional optionalMember = memberRepository.findById(memberId); - return optionalMember.orElseThrow(() -> new IllegalStateException("아이디와 일치하는 회원을 찾을 수 없습니다.")); - } + return optionalMember.orElseThrow(() -> new MemberNotFoundException("아이디와 일치하는 회원을 찾을 수 없습니다.")); + }//완료 public Member login(LoginForm form) { String email = form.getEmail(); String password = form.getPassword(); Optional optionalMember = memberRepository.findByEmailAndPassword(email, password); - return optionalMember.orElseThrow(() -> new IllegalStateException("이메일, 비밀번호가 일치하는 회원이 존재하지 않습니다")); + return optionalMember.orElseThrow(() -> new LoginFailException("이메일, 비밀번호가 일치하는 회원이 존재하지 않습니다")); } public void clearRespository() { diff --git a/src/main/java/com/landvibe/landlog/support/ControllerSupport.java b/src/main/java/com/landvibe/landlog/support/ControllerSupport.java new file mode 100644 index 0000000..d010e4f --- /dev/null +++ b/src/main/java/com/landvibe/landlog/support/ControllerSupport.java @@ -0,0 +1,29 @@ +package com.landvibe.landlog.support; + +import com.landvibe.landlog.exception.LoginFailException; +import com.landvibe.landlog.exception.MemberNotFoundException; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseStatus; + +import java.net.URI; + +@ControllerAdvice +@ResponseStatus(HttpStatus.BAD_REQUEST) +public class ControllerSupport { + + @ExceptionHandler({MemberNotFoundException.class, LoginFailException.class}) + public String handle(RuntimeException e) { + System.out.println(e.getMessage()); + return "home"; + } + + @ExceptionHandler(IllegalStateException.class) + public String handle(IllegalStateException e) { + System.out.println(e.getMessage()); + return "members/createMemberForm"; + } + + +}