Skip to content
Snippets Groups Projects
Commit 7db7efbc authored by 한이지's avatar 한이지
Browse files

code refactoring with service

parent 4f390ed5
No related branches found
No related tags found
No related merge requests found
Pipeline #8349 canceled
...@@ -9,93 +9,39 @@ import org.springframework.web.bind.annotation.PostMapping; ...@@ -9,93 +9,39 @@ 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 org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
import com.fasterxml.jackson.databind.ObjectMapper;
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;
@RestController @RestController
public class MyWebController { public class MyWebController {
RestTemplate restTemplate = new RestTemplate();
@GetMapping(value="/musicSearch/{term}")
public MusicList musicSearchByPath(@PathVariable String term) {
String url = "https://itunes.apple.com/search?term=" + term + "&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());
return list;
} catch(IOException e) {
System.out.println(e.toString()); @Autowired
return null; MusicService service;
@GetMapping(value = "/musicSearch/{name}")
public MusicList musicSearchByPath(@PathVariable String name){
return service.searchMusic(name);
} }
}
@GetMapping(value="/musicSearch")
public MusicList musicSearchByParam(@RequestParam String term){
String url = "https://itunes.apple.com/search?term=" + term + "&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());
return list; @GetMapping(value="/musicSearch")
public MusicList musicSearchByParam(@RequestParam(value="term") String name) {
} catch(IOException e) { return service.searchMusic(name);
System.out.println(e.toString());
return null;
}
} }
@Autowired
FavoriteRepository albumsRepo;
@GetMapping(value="/likes")
public List<FavoriteMusic> getLikes() {
try {
return albumsRepo.findAll(); @GetMapping(value="/likes") //Get Favorite Music list from Database
} catch (Exception e) {
System.out.println(e.toString());
return null;
public List<FavoriteMusic> getLikes() {
return service.getLikes();
} }
}
@PostMapping(value="/likes") @PostMapping(value="/likes")
@Transactional public int postLikes(@RequestBody FavoriteMusicRequestDto favorite) {
public int postLikes(@RequestBody FavoriteMusicRequestDto favorite) return service.saveFavorite(favorite);
{
FavoriteMusic music = albumsRepo.save(favorite.toEntity());
if(music != null) {
return 1;
}
else {
return 0;
}
} }
} }
package kr.ajousw.myspringweb.service;
import java.io.IOException;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.client.RestTemplate;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.transaction.annotation.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.util.List;
@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";
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(@RequestBody FavoriteMusicRequestDto favorite){
FavoriteMusic music = albumsRepo.save(favorite.toEntity());
if(music != null) {
return 1;
}
else {
return 0;
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment