Skip to content
Snippets Groups Projects
Commit 73fa8eb1 authored by 이명건's avatar 이명건
Browse files

code refactoring with service

parent c84ae0e0
Branches
No related tags found
No related merge requests found
Pipeline #8332 canceled
{
"wrapperType":"collection",
"collectionType":"Album",
"artistId":117554,
"collectionId":1498440588,
"amgArtistId":4062,
"artistName":"Def Leppard",
"collectionName":"Hysteria at the O2 (Live)",
"collectionCensoredName":"Hysteria at the O2 (Live)",
"artistViewUrl":"https://music.apple.com/us/artist/def-leppard/117554?uo=4",
"collectionViewUrl":"https://music.apple.com/us/album/hysteria-at-the-o2-live/1498440588?uo=4",
"artworkUrl60":"https://is2-ssl.mzstatic.com/image/thumb/Music113/v4/fb/22/8a/fb228abd-54fe-0a09-ae3d-4a3d9d66db2d/20UMGIM01121.rgb.jpg/60x60bb.jpg",
"artworkUrl100":"https://is2-ssl.mzstatic.com/image/thumb/Music113/v4/fb/22/8a/fb228abd-54fe-0a09-ae3d-4a3d9d66db2d/20UMGIM01121.rgb.jpg/100x100bb.jpg",
"collectionPrice":9.99,
"collectionExplicitness":"notExplicit",
"trackCount":18,
"copyright":"℗ 2020 Bludgeon Riffola Limited, exclusively licensed to Eagle Rock Entertainment Ltd.",
"country":"USA",
"currency":"USD",
"releaseDate":"2020-05-29T07:00:00Z",
"primaryGenreName":"Hard Rock"
}
\ No newline at end of file
......@@ -19,6 +19,7 @@ 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 {
......@@ -26,55 +27,69 @@ public class MyWebcontroller {
@Autowired
FavoriteRepository albumsRepo;
@GetMapping(value = "/musicSearch/{term}")
public MusicList musicSearchByPath(@PathVariable String term) {
try {
String url = "https://itunes.apple.com/search?term="+ term +"&entity=album";
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;
}
@Autowired
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) {
try {
String url = "https://itunes.apple.com/search?term="+ term +"&entity=album";
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(value="term") 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;
}
}
// @GetMapping(value = "/musicSearch/{term}")
// public MusicList musicSearchByPath(@PathVariable String term) {
// try {
// String url = "https://itunes.apple.com/search?term="+ term +"&entity=album";
// 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;
// }
// }
@PostMapping(value = "/likes")
@Transactional
public int postLikes(@RequestBody FavoriteMusicRequestDto favorite) {
FavoriteMusic music = albumsRepo.save(favorite.toEntity());
if(music != null) {
return 1;
} else {
return 0;
}
}
// @GetMapping(value = "/musicSearch")
// public MusicList musicSearchByParam(@RequestParam String term) {
// try {
// String url = "https://itunes.apple.com/search?term="+ term +"&entity=album";
// 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 = "/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;
// }
// }
}
package kr.ajousw.myspringweb.service;
import java.io.IOException;
import java.util.List;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.client.RestTemplate;
import com.fasterxml.jackson.databind.ObjectMapper;
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) {
try {
String url = "https://itunes.apple.com/search?term="+ name +"&entity=album";
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(value = "term") String name) {
// try {
// String url = "https://itunes.apple.com/search?term="+ name +"&entity=album";
// 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;
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment