Skip to content
Snippets Groups Projects
Commit 7ea75d07 authored by 황 수빈's avatar 황 수빈
Browse files

code refactoring with service

parent b7318224
No related branches found
No related tags found
No related merge requests found
Pipeline #8359 canceled
...@@ -5,17 +5,12 @@ import org.springframework.web.bind.annotation.PostMapping; ...@@ -5,17 +5,12 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; 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.FavoriteMusicRequestDto;
import kr.ajousw.myspringweb.dto.MusicList; import kr.ajousw.myspringweb.dto.MusicList;
import kr.ajousw.myspringweb.entity.FavoriteMusic; import kr.ajousw.myspringweb.entity.FavoriteMusic;
import kr.ajousw.myspringweb.repository.FavoriteRepository; import kr.ajousw.myspringweb.service.MusicService;
import java.io.IOException;
import java.util.List; import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -23,66 +18,27 @@ import org.springframework.web.bind.annotation.GetMapping; ...@@ -23,66 +18,27 @@ import org.springframework.web.bind.annotation.GetMapping;
@RestController @RestController
public class MyWebController { public class MyWebController {
// PathVariable 방식 => localhost/musicSearch/aespa 로 접속 @Autowired
@GetMapping(value = "/musicSearch/{term}") MusicService service;
public MusicList musicSearchByPath(@PathVariable String term) {
RestTemplate restTemplate = new RestTemplate();
try { @GetMapping(value = "/musicSearch/{name}")
String response = restTemplate.getForObject("https://itunes.apple.com/search?term=term&entity=album", public MusicList musicSearchByPath(@PathVariable String name) {
String.class); return service.searchMusic(name);
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;
}
} }
// Query Param 방식 => localhost/musicSearch?term=aespa 로 접속
@GetMapping(value = "/musicSearch") @GetMapping(value = "/musicSearch")
public MusicList musicSearchByParam(@RequestParam String term) { public MusicList musicSearchByParam(@RequestParam(value = "term") String name) {
RestTemplate restTemplate = new RestTemplate(); return service.searchMusic(name);
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;
}
} }
@Autowired @GetMapping(value = "/likes") // Get Favorite Music list from Database
FavoriteRepository albumsRepo;
// Get Favorite Music list from Database
@GetMapping(value = "/likes")
public List<FavoriteMusic> getLikes() { public List<FavoriteMusic> getLikes() {
try { return service.getLikes();
return albumsRepo.findAll();
} catch (Exception e) {
System.out.println(e.toString());
return null;
}
} }
@PostMapping(value = "/likes") @PostMapping(value = "/likes")
@Transactional
public int postLikes(@RequestBody FavoriteMusicRequestDto favorite) { public int postLikes(@RequestBody FavoriteMusicRequestDto favorite) {
FavoriteMusic music = albumsRepo.save(favorite.toEntity()); return service.saveFavorite(favorite);
if (music != null) {
return 1;
}
else {
return 0;
}
} }
} }
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 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;
}
}
public List<FavoriteMusic> getLikes() {
try {
return albumsRepo.findAll();
} catch (Exception e) {
System.out.println(e.toString());
return null;
}
}
@Transactional
public int saveFavorite(FavoriteMusicRequestDto favorite) {
FavoriteMusic music = albumsRepo.save(favorite.toEntity());
if (music != null) {
return 1;
} else {
return 0;
}
}
}
\ No newline at end of file
No preview for this file type
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment