From 344b763b3c8e652e643c7adfc3817cfe5c4c7447 Mon Sep 17 00:00:00 2001 From: LeeChanJu <dlckswn334@ajou.ac.kr> Date: Mon, 17 Jul 2023 16:32:43 +0900 Subject: [PATCH] code refactoring with --- .../controller/MyspringwebController.java | 53 +++-------------- .../kr/ajousw/myspringweb/dto/MusicList.java | 1 - .../myspringweb/service/MusicService.java | 58 +++++++++++++++++++ 3 files changed, 66 insertions(+), 46 deletions(-) create mode 100644 src/main/java/kr/ajousw/myspringweb/service/MusicService.java diff --git a/src/main/java/kr/ajousw/myspringweb/controller/MyspringwebController.java b/src/main/java/kr/ajousw/myspringweb/controller/MyspringwebController.java index 24edfcf..06ccf65 100644 --- a/src/main/java/kr/ajousw/myspringweb/controller/MyspringwebController.java +++ b/src/main/java/kr/ajousw/myspringweb/controller/MyspringwebController.java @@ -1,21 +1,17 @@ package kr.ajousw.myspringweb.controller; -import java.io.IOException; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -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 kr.ajousw.myspringweb.service.MusicService; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -26,65 +22,32 @@ import org.springframework.web.bind.annotation.RequestParam; @RestController public class MyspringwebController { @Autowired - FavoriteRepository albumsRepo; + MusicService service; @RequestMapping("/") public String index() { return "Greetings from Spring Boot!"; } - @GetMapping(value="/musicSearch/{term}") - public MusicList musicSearchByPath(@PathVariable String term){ - String url = "https://itunes.apple.com/search?term=" + term + "&entity=album"; - RestTemplate restTemplate = new RestTemplate(); - 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; - } + @GetMapping(value="/musicSearch/{name}") + public MusicList musicSearchByPath(@PathVariable String name){ + return service.searchMusic(name); } @GetMapping(value="/musicSearch") public MusicList musicSearchByParam(@RequestParam(value="term") String name){ - String url = "https://itunes.apple.com/search?term=" + name + "&entity=album"; - RestTemplate restTemplate = new RestTemplate(); - 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; - } + 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/dto/MusicList.java b/src/main/java/kr/ajousw/myspringweb/dto/MusicList.java index c76546d..ea56d9c 100644 --- a/src/main/java/kr/ajousw/myspringweb/dto/MusicList.java +++ b/src/main/java/kr/ajousw/myspringweb/dto/MusicList.java @@ -3,7 +3,6 @@ package kr.ajousw.myspringweb.dto; import java.util.List; import java.util.Map; -import kr.ajousw.myspringweb.entity.FavoriteMusic; import lombok.Getter; import lombok.Setter; import lombok.ToString; 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..e5c32e2 --- /dev/null +++ b/src/main/java/kr/ajousw/myspringweb/service/MusicService.java @@ -0,0 +1,58 @@ +package kr.ajousw.myspringweb.service; + +import java.io.IOException; +import java.util.List; + +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; + +@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=album"; + RestTemplate restTemplate = new RestTemplate(); + 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