diff --git a/src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java b/src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java index 3c395ad34ef2505a58bebef0e6fa67f1322e32b5..37c35c2510c9067ccc1318e194b617d06b9ca9ca 100644 --- a/src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java +++ b/src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java @@ -19,6 +19,7 @@ import kr.ajousw.myspringweb.dto.MusicList; import kr.ajousw.myspringweb.entity.FavoriteMusic; import kr.ajousw.myspringweb.repository.FavoriteRepository; import kr.ajousw.myspringweb.dto.FavoriteMusicRequestDto; +import kr.ajousw.myspringweb.service.MusicService; @RestController @@ -26,71 +27,98 @@ import kr.ajousw.myspringweb.dto.FavoriteMusicRequestDto; public class MyWebController { @Autowired - FavoriteRepository albumsRepo; + MusicService service; + - - RestTemplate restTemplate = new RestTemplate(); - - @GetMapping(value="/musicSearch/{term}") - public MusicList musicSearchByPath(@PathVariable String term) { - try { - String response = restTemplate.getForObject("https://itunes.apple.com/search?term=term&entity=album", 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/{name}") + public MusicList musicSearchByPath(@PathVariable String name){ + return service.searchMusic(name); + } - @GetMapping(value="/musicSearch") - public MusicList musicSearchByParam(@RequestParam String term) { - try { - String response = restTemplate.getForObject("https://itunes.apple.com/search?term=term&entity=album", 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(value="term") String name) { + return service.searchMusic(name); } - // // Get Favorite Music list from Database - @GetMapping(value="/likes") + @GetMapping(value="/likes") //Get Favorite Music list from Database public List<FavoriteMusic> getLikes() { - - try { - return albumsRepo.findAll(); - - } catch (Exception e) { - System.out.println(e.toString()); - return null; - } - } - + return service.getLikes(); + } @PostMapping(value="/likes") - @Transactional public int postLikes(@RequestBody FavoriteMusicRequestDto favorite) { - FavoriteMusic music = albumsRepo.save(favorite.toEntity()); - if(music != null) { - return 1; - } - else { - return 0; - } + return service.saveFavorite(favorite); } + + + + + + // RestTemplate restTemplate = new RestTemplate(); + + // @GetMapping(value="/musicSearch/{term}") + // public MusicList musicSearchByPath(@PathVariable String term) { + // try { + // String response = restTemplate.getForObject("https://itunes.apple.com/search?term=term&entity=album", 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 response = restTemplate.getForObject("https://itunes.apple.com/search?term=term&entity=album", 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; + // } + + // } + + // // // 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; + // } + // } + } diff --git a/src/main/java/kr/ajousw/myspringweb/service/MusicService.java b/src/main/java/kr/ajousw/myspringweb/service/MusicService.java new file mode 100644 index 0000000000000000000000000000000000000000..c5074199b3b21c30b7e9ebc1447f58f965405141 --- /dev/null +++ b/src/main/java/kr/ajousw/myspringweb/service/MusicService.java @@ -0,0 +1,145 @@ +package kr.ajousw.myspringweb.service; + +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import jakarta.transaction.Transactional; +import kr.ajousw.myspringweb.dto.FavoriteMusicRequestDto; +import kr.ajousw.myspringweb.dto.MusicList; +import kr.ajousw.myspringweb.entity.FavoriteMusic; +import kr.ajousw.myspringweb.repository.FavoriteRepository; +import lombok.RequiredArgsConstructor; + +import java.io.IOException; +import java.util.*; + +@Service +@Transactional +@RequiredArgsConstructor + +public class MusicService { + private final FavoriteRepository albumsRepo; + RestTemplate restTemplate = new RestTemplate(); + + + public MusicList searchMusic(String name) { + try { + String response = restTemplate.getForObject("https://itunes.apple.com/search?term="+name+"&entity=album", 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(); + + } catch (Exception e) { + System.out.println(e.toString()); + return null; + } + } + + public int saveFavorite(FavoriteMusicRequestDto favorite) { + FavoriteMusic music = albumsRepo.save(favorite.toEntity()); + if(music != null) { + return 1; + } + else { + return 0; + } + + + + } + + + + + // GetMapping(value="/musicSearch/{term}") + // public MusicList musicSearchByPath(@PathVariable String term) { + // try { + // String response = restTemplate.getForObject("https://itunes.apple.com/search?term=term&entity=album", 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 response = restTemplate.getForObject("https://itunes.apple.com/search?term=term&entity=album", 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; + // } + + // } + + // // // 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; + // } + // } + + + + + + + + + + + + + + + + + +} diff --git a/target/classes/kr/ajousw/myspringweb/controller/MyWebController.class b/target/classes/kr/ajousw/myspringweb/controller/MyWebController.class index 8bb3230126b57b13e2c74cd44628d9a5bbb46abb..e43f8ff1355cfd7516204e0e9893c393b095652b 100644 Binary files a/target/classes/kr/ajousw/myspringweb/controller/MyWebController.class and b/target/classes/kr/ajousw/myspringweb/controller/MyWebController.class differ diff --git a/target/classes/kr/ajousw/myspringweb/service/MusicService.class b/target/classes/kr/ajousw/myspringweb/service/MusicService.class new file mode 100644 index 0000000000000000000000000000000000000000..db0757bf4f956aeff1c9b67a0352cc93a517b263 Binary files /dev/null and b/target/classes/kr/ajousw/myspringweb/service/MusicService.class differ