관심 주제 삭제 관련 핸들러 작성
package me.weekbelt.studyolle.settings;
@RequiredArgsConstructor
@Controller
public class SettingsController {
// 기존 코드 .........
@ResponseBody
@PostMapping("/settings/tags/remove")
public ResponseEntity<?> removeTag(@CurrentUser Account account, @RequestBody TagForm tagForm) {
String title = tagForm.getTagTitle();
Tag tag = tagRepository.findByTitle(title).get();
if (tag == null){
return ResponseEntity.badRequest().build();
}
accountService.removeTag(account, tag);
return ResponseEntity.ok().build();
}
}
관심 주제 삭제를 처리할 removeTag메소드 작성
package me.weekbelt.studyolle.account;
rt java.util.Set;
@Transactional
@RequiredArgsConstructor
@Service
public class AccountService implements UserDetailsService {
// 기존 코드 ......
public void removeTag(Account account, Tag tag) {
Optional<Account> byId = accountRepository.findById(account.getId());
byId.ifPresent(a -> a.getTags().remove(tag));
}
}
참고 : https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-JPA-%EC%9B%B9%EC%95%B1#
'스프링과 JPA 기반 웹 어플리케이션 개발 > 2부(관심 주제와 지역 정보)' 카테고리의 다른 글
38. 관심 주제 테스트 (0) | 2020.04.23 |
---|---|
37. 관심 주제 자동완성 (0) | 2020.04.22 |
35. 관심 주제 조회 (0) | 2020.04.22 |
34. 관심주제 등록하기 (0) | 2020.04.22 |
33. 관심 주제 도메인 (0) | 2020.04.22 |