From 2b39641cf77a12c0d81eef7ffb33aecfdea026b4 Mon Sep 17 00:00:00 2001 From: jaehyunk17 <kjh77k@ajou.ac.kr> Date: Mon, 17 Jul 2023 17:16:21 +0900 Subject: [PATCH] code refactoring with service --- .../controller/MyWebController.java | 52 +++-------------- .../myspringweb/service/MusicService.java | 57 +++++++++++++++++++ 2 files changed, 66 insertions(+), 43 deletions(-) create mode 100644 src/main/java/kr/ajousw/myspringweb/service/MusicService.java diff --git a/src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java b/src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java index 4b16ce4..134b76b 100644 --- a/src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java +++ b/src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java @@ -17,69 +17,35 @@ 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 kr.ajousw.myspringweb.service.MusicService; @RestController public class MyWebController { @Autowired - FavoriteRepository albumsRepo; + MusicService service; - @GetMapping(value = "/musicSearch/{term}") - public Musiclist musicSearchByPath(@PathVariable String term) { - RestTemplate restTemplate = new RestTemplate(); - String url = "https://itunes.apple.com/search?term=" + term + "&entity=musicVideo"; - // String url = "https://itunes.apple.com/search?term=aespa&entity=album"; - try { - String response = restTemplate.getForObject(url, String.class); - ObjectMapper mapper = new ObjectMapper(); - Musiclist list = mapper.readValue(response, Musiclist.class); - System.out.println(list.getResultCount()); + @GetMapping(value = "/musicSearch/{name}") + public Musiclist musicSearchByPath(@PathVariable String name) { - return list; - } catch (IOException e) { - System.out.println(e.toString()); - } - return null; + return service.searchMusic(name); } @GetMapping(value = "/musicSearch") - public Musiclist musicSearchByParam(@RequestParam String term) { - RestTemplate restTemplate = new RestTemplate(); - String url = "https://itunes.apple.com/search?term=" + term + "&entity=musicVideo"; - try { - 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 Musiclist musicSearchByParam(@RequestParam String name) { + return service.searchMusic(name); } @GetMapping(value = "/likes") 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); } } 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 0000000..c573850 --- /dev/null +++ b/src/main/java/kr/ajousw/myspringweb/service/MusicService.java @@ -0,0 +1,57 @@ +package kr.ajousw.myspringweb.service; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import lombok.RequiredArgsConstructor; +import org.springframework.web.client.RestTemplate; +import com.fasterxml.jackson.databind.ObjectMapper; +import java.io.IOException; +import java.util.List; + +import kr.ajousw.myspringweb.dto.FavoriteMusicRequestDto; +import kr.ajousw.myspringweb.dto.Musiclist; +import kr.ajousw.myspringweb.entity.FavoriteMusic; +import kr.ajousw.myspringweb.repository.FavoriteRepository; + +@Service +@Transactional +@RequiredArgsConstructor +public class MusicService { + private final FavoriteRepository albumsRepo; + RestTemplate restTemplate = new RestTemplate(); + + public Musiclist searchMusic(String name) { + String url = "https://itunes.apple.com/search?term=" + name + + "&entity=musicVideo"; + try { + 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(); + } 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; + } + + } +} -- GitLab