Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 21 additions & 52 deletions src/main/java/com/landvibe/landlog/controller/BlogController.java
Original file line number Diff line number Diff line change
Expand Up @@ -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<Blog> 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<Blog> 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;
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -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<Member> members = memberService.findMembers();
model.addAttribute("members", members);
Expand All @@ -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();
}


}

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.landvibe.landlog.exception;

public class BlogNotFoundException extends RuntimeException {

private String message;

public BlogNotFoundException(String message) {
this.message = message;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.landvibe.landlog.exception;

public class LoginFailException extends RuntimeException {

private String message;

public LoginFailException(String message) {
this.message = message;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.landvibe.landlog.exception;

public class MemberNotFoundException extends RuntimeException {

private String message;

public MemberNotFoundException(String message) {
this.message = message;
}
}
3 changes: 2 additions & 1 deletion src/main/java/com/landvibe/landlog/service/BlogService.java
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -33,7 +34,7 @@ public List<Blog> 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) {
Expand Down
10 changes: 6 additions & 4 deletions src/main/java/com/landvibe/landlog/service/MemberService.java
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -26,7 +28,7 @@ public Long join(MemberForm form) {
.password(password)
.email(email)
.build();
validateDuplicateMember(member); //중복 회원 검증
validateDuplicateMember(member);
memberRepository.save(member);
return member.getId();
}
Expand All @@ -46,14 +48,14 @@ public List<Member> findMembers() {

public Member findById(Long memberId) {
Optional<Member> 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<Member> optionalMember = memberRepository.findByEmailAndPassword(email, password);
return optionalMember.orElseThrow(() -> new IllegalStateException("이메일, 비밀번호가 일치하는 회원이 존재하지 않습니다"));
return optionalMember.orElseThrow(() -> new LoginFailException("이메일, 비밀번호가 일치하는 회원이 존재하지 않습니다"));
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

예외 메시지도 따로 분리할 수 있어보이네요.

}

public void clearRespository() {
Expand Down
29 changes: 29 additions & 0 deletions src/main/java/com/landvibe/landlog/support/ControllerSupport.java
Original file line number Diff line number Diff line change
@@ -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 {
Comment on lines +12 to +14
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

모든 예외상황을 BAD REQUEST로 처리해야할까요?


@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());
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sout으로 로그를 남기는 것은 지양해야합니다.

return "members/createMemberForm";
}


}
Comment on lines +12 to +29
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Restful한 API가 아니게 되어버렸네요. axios가 생소하더라도 html을 수정해보세요 :)