diff --git a/src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java b/src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java index 62cac1e20e51ce37406245abcb714b8a956f0cbf..d82dfc510f6ab5b35c01450d7f1afa80470fc2a9 100644 --- a/src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java +++ b/src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java @@ -11,6 +11,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; +import org.springframework.web.bind.annotation.DeleteMapping; + import com.fasterxml.jackson.databind.ObjectMapper; @@ -37,7 +39,7 @@ public class MyWebController { } @GetMapping(value="/musicSearch") - public MusicList musicSearchByParam(@RequestParam(value="term") String name) { + public MusicList musicSearchByParam(@RequestParam(value="name") String name) { return service.searchMusic(name); } @@ -51,62 +53,9 @@ public class MyWebController { return service.saveFavorite(favorite); } - - - // @GetMapping(value = "/musicSearch/{term}") - // public MusicList musicSearchByPath(@PathVariable String term) { - // try { - // RestTemplate restTemplate = new RestTemplate(); - // String url = "https://itunes.apple.com/search?term=" + term + "&entity=album"; - // String response = restTemplate.getForObject(url, String.class); // String class로 변환 - // ObjectMapper mapper = new ObjectMapper(); - // MusicList list = mapper.readValue(response, MusicList.class); // MusicList 방식으로 변환 - // System.out.println(list.getResultCount()); - // return list; // MusicList를 반환 - // } catch (IOException e) { - // System.out.println(e.toString()); - // return null; - // } - // } - - // @GetMapping(value = "/musicSearch") - // public MusicList musicSearchByParam(@RequestParam String term) { - // try { - // RestTemplate restTemplate = new RestTemplate(); - // String url = "https://itunes.apple.com/search?term=" + term + "&entity=album"; - // String response = restTemplate.getForObject(url, String.class); // String class로 변환 - // ObjectMapper mapper = new ObjectMapper(); - // MusicList list = mapper.readValue(response, MusicList.class); // MusicList 방식으로 변환 - // System.out.println(list.getResultCount()); - // return list; - // } catch (IOException e) { - // System.out.println(e.toString()); - // return null; - // } - // } - - // Get Favorite Music list from Database - // @GetMapping(value = "/likes") - // public List<FavoriteMusic> getLikes() { - - // try { - // return albumsRepo.findAll(); - - // } catch (Exception e) { - // System.out.println(e.toString()); - // return null; - // } - // } - - // @PostMapping(value = "/likes") - // @Transactional - // public int postLikes(@RequestBody FavoriteMusicRequestDto favorite) { - // FavoriteMusic music = albumsRepo.save(favorite.toEntity()); - // if (music != null) { - // return 1; - // } else { - // return 0; - // } - // } + @DeleteMapping(value="/likes/{id}") + public int deleteLikes(@PathVariable String id){ + return service.deleteFavorite(id); + } } diff --git a/src/main/java/kr/ajousw/myspringweb/repository/FavoriteRepository.java b/src/main/java/kr/ajousw/myspringweb/repository/FavoriteRepository.java index 4361260ff81adf26393bd79505abd8e14aa59bd8..c273e8e1b4fd3d7a240206dc2c32a70818d021c2 100644 --- a/src/main/java/kr/ajousw/myspringweb/repository/FavoriteRepository.java +++ b/src/main/java/kr/ajousw/myspringweb/repository/FavoriteRepository.java @@ -6,4 +6,5 @@ import kr.ajousw.myspringweb.entity.FavoriteMusic; public interface FavoriteRepository extends JpaRepository<FavoriteMusic, String> { List<FavoriteMusic> findAll(); + void deleteById(String id); } diff --git a/src/main/java/kr/ajousw/myspringweb/service/MusicService.java b/src/main/java/kr/ajousw/myspringweb/service/MusicService.java index 33fa33139db6bf0517935b86f34a03d471337187..8e8742992d052ff17b75f686d89179df81c357f5 100644 --- a/src/main/java/kr/ajousw/myspringweb/service/MusicService.java +++ b/src/main/java/kr/ajousw/myspringweb/service/MusicService.java @@ -2,6 +2,8 @@ package kr.ajousw.myspringweb.service; import java.io.IOException; import java.util.List; +import java.util.Optional; + import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; @@ -19,12 +21,13 @@ import lombok.RequiredArgsConstructor; @Transactional // 데이터베이스의 원리 중 하나로 실행되다가 오류가 발생하면은, 다시 실행 이전의 상태로 돌아가는 것 @RequiredArgsConstructor public class MusicService { + private final FavoriteRepository albumsRepo; RestTemplate restTemplate = new RestTemplate(); - public MusicList searchMusic(String term) { + public MusicList searchMusic(String name) { try { - String url = "https://itunes.apple.com/search?term=" + term + "&entity=album"; + String url = "https://itunes.apple.com/search?term=" + name + "&entity=album"; String response = restTemplate.getForObject(url, String.class); ObjectMapper mapper = new ObjectMapper(); MusicList list = mapper.readValue(response, MusicList.class); @@ -45,7 +48,6 @@ public class MusicService { } } - @Transactional public int saveFavorite(FavoriteMusicRequestDto favorite) { FavoriteMusic music = albumsRepo.save(favorite.toEntity()); if (music != null) { @@ -53,6 +55,21 @@ public class MusicService { } else { return 0; } + } + + public int deleteFavorite(String id) { + try { + Optional<FavoriteMusic> music = albumsRepo.findById(id); + if (music.isPresent()) { + albumsRepo.deleteById(id); + return 1; // 성공적으로 삭제된 경우 + } else { + return 0; // 해당 ID의 음악이 없는 경우 + } + } catch (Exception e) { + System.out.println(e.toString()); + return -1; // 오류가 발생한 경우 + } } -} +} \ No newline at end of file