From 265b93271a720012d0f2913cd962e3f66394d856 Mon Sep 17 00:00:00 2001 From: LeeMyeongGeon <lmk2430@ajou.ac.kr> Date: Mon, 17 Jul 2023 17:45:17 +0900 Subject: [PATCH] Add delete Favorite --- .../controller/MyWebcontroller.java | 78 +++++-------------- .../dto/FavoriteMusicRequestDto.java | 1 - .../repository/FavoriteRepository.java | 2 + .../myspringweb/service/MusicService.java | 33 ++++---- 4 files changed, 37 insertions(+), 77 deletions(-) diff --git a/src/main/java/kr/ajousw/myspringweb/controller/MyWebcontroller.java b/src/main/java/kr/ajousw/myspringweb/controller/MyWebcontroller.java index 0bad733..2a20582 100644 --- a/src/main/java/kr/ajousw/myspringweb/controller/MyWebcontroller.java +++ b/src/main/java/kr/ajousw/myspringweb/controller/MyWebcontroller.java @@ -1,10 +1,10 @@ package kr.ajousw.myspringweb.controller; -import java.io.IOException; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.transaction.annotation.Transactional; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -13,8 +13,6 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; -import com.fasterxml.jackson.databind.ObjectMapper; - import kr.ajousw.myspringweb.dto.FavoriteMusicRequestDto; import kr.ajousw.myspringweb.dto.MusicList; import kr.ajousw.myspringweb.entity.FavoriteMusic; @@ -27,69 +25,33 @@ public class MyWebcontroller { @Autowired FavoriteRepository albumsRepo; - @Autowired + @Autowired MusicService service; - @GetMapping(value = "/musicSearch/{name}") - public MusicList musicSearchByPath(@PathVariable String name){ + public MusicList musicSearchByPath(@PathVariable String name) { return service.searchMusic(name); } - @GetMapping(value="/musicSearch") - public MusicList musicSearchByParam(@RequestParam(value="term") String name) { + @GetMapping(value = "/musicSearch") + public MusicList musicSearchByParam(@RequestParam(value = "term") String name) { return service.searchMusic(name); } - // @GetMapping(value = "/musicSearch/{term}") - // public MusicList musicSearchByPath(@PathVariable String term) { - // try { - // String url = "https://itunes.apple.com/search?term="+ term +"&entity=album"; - // String response = restTemplate.getForObject(url, String.class); - // ObjectMapper mapper = new ObjectMapper(); - // MusicList list = mapper.readValue(response, MusicList.class); - // System.out.println(list.getResultCount()); - // return list; - // } catch(IOException e) { - // System.out.println(e.toString()); - // return null; - // } - // } - - // @GetMapping(value = "/musicSearch") - // public MusicList musicSearchByParam(@RequestParam String term) { - // try { - // String url = "https://itunes.apple.com/search?term="+ term +"&entity=album"; - // String response = restTemplate.getForObject(url, String.class); - // ObjectMapper mapper = new ObjectMapper(); - // MusicList list = mapper.readValue(response, MusicList.class); - // System.out.println(list.getResultCount()); - // return list; - // } catch(IOException e) { - // System.out.println(e.toString()); - // return null; - // } - // } + @GetMapping(value="/likes") //Get Favorite Music list from Database + public List<FavoriteMusic> getLikes() { + return service.getLikes(); + } + + @PostMapping(value="/likes") + public int postLikes(@RequestBody FavoriteMusicRequestDto favorite) { + return service.saveFavorite(favorite); + } - // @GetMapping(value = "/likes") - // public List<FavoriteMusic> getLikes() { - // try { - // return albumsRepo.findAll(); - // } catch (Exception e) { - // System.out.println(e.toString()); - // return null; - // } - // } + @DeleteMapping(value = "/likes/{id}") + public String deleteFavorite(@PathVariable String id) { + service.deleteFavorite(id); + return (id + " was deleted."); + } - // @PostMapping(value = "/likes") - // @Transactional - // public int postLikes(@RequestBody FavoriteMusicRequestDto favorite) { - // FavoriteMusic music = albumsRepo.save(favorite.toEntity()); - // if(music != null) { - // return 1; - // } else { - // return 0; - // } - // } } - diff --git a/src/main/java/kr/ajousw/myspringweb/dto/FavoriteMusicRequestDto.java b/src/main/java/kr/ajousw/myspringweb/dto/FavoriteMusicRequestDto.java index b37255d..ef6ecdd 100644 --- a/src/main/java/kr/ajousw/myspringweb/dto/FavoriteMusicRequestDto.java +++ b/src/main/java/kr/ajousw/myspringweb/dto/FavoriteMusicRequestDto.java @@ -1,6 +1,5 @@ package kr.ajousw.myspringweb.dto; -import jakarta.persistence.Column; import kr.ajousw.myspringweb.entity.FavoriteMusic; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/kr/ajousw/myspringweb/repository/FavoriteRepository.java b/src/main/java/kr/ajousw/myspringweb/repository/FavoriteRepository.java index 1c911c4..3cf9f13 100644 --- a/src/main/java/kr/ajousw/myspringweb/repository/FavoriteRepository.java +++ b/src/main/java/kr/ajousw/myspringweb/repository/FavoriteRepository.java @@ -6,5 +6,7 @@ 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 dca08da..1e6626f 100644 --- a/src/main/java/kr/ajousw/myspringweb/service/MusicService.java +++ b/src/main/java/kr/ajousw/myspringweb/service/MusicService.java @@ -2,11 +2,10 @@ 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.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.client.RestTemplate; import com.fasterxml.jackson.databind.ObjectMapper; @@ -36,23 +35,8 @@ public class MusicService { return null; } - } - - // public MusicList musicSearchByParam(@RequestParam(value = "term") String name) { - // try { - // 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); - // System.out.println(list.getResultCount()); - // return list; - // } catch(IOException e) { - // System.out.println(e.toString()); - // return null; - // } - // } + } - public List<FavoriteMusic> getLikes() { try { return albumsRepo.findAll(); @@ -61,6 +45,7 @@ public class MusicService { return null; } } + public int saveFavorite(FavoriteMusicRequestDto favorite) { FavoriteMusic music = albumsRepo.save(favorite.toEntity()); if(music != null) { @@ -71,4 +56,16 @@ public class MusicService { } + public void deleteFavorite(String id) { + try { + Optional<FavoriteMusic> favoriteMusicOptional = albumsRepo.findById(id); + if (favoriteMusicOptional.isPresent()) { + albumsRepo.deleteById(id); + } else { + throw new IllegalArgumentException("Invalid id: " + id); + } + } catch (Exception e) { + System.out.println(e.toString()); + } + } } -- GitLab