Skip to content
Snippets Groups Projects
Commit 27a83b58 authored by 황 재인's avatar 황 재인
Browse files

code refactoring with service

parent a8198d08
Branches main
No related tags found
No related merge requests found
......@@ -16,6 +16,7 @@ import com.ajou.prcoding.myweb.dto.FavoriteMusicRequestDto;
import com.ajou.prcoding.myweb.dto.MusicList;
import com.ajou.prcoding.myweb.entity.FavoriteMusic;
import com.ajou.prcoding.myweb.repository.FavoriteRepository;
import com.ajou.prcoding.myweb.service.MusicService;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.transaction.Transactional;
......@@ -23,62 +24,22 @@ import jakarta.transaction.Transactional;
@RestController
public class MyWebController {
@Autowired
FavoriteRepository albumsRepo;
RestTemplate restTemplate = new RestTemplate();
@GetMapping(value="/musicSearch/{term}")
public MusicList musicSearchByPath(@PathVariable String term) {
try {
String response = restTemplate.getForObject("https://itunes.apple.com/search?term={term}&entity=album",String.class, "aespa");
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;
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){
RestTemplate restTemplate = new RestTemplate();
try {
String response = restTemplate.getForObject("https://itunes.apple.com/search?term={term}&entity=album",String.class, "aespa");
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);
}
//Get Favorite Music list from Database
@GetMapping(value="/likes")
@GetMapping(value="/likes") //Get Favorite Music list from Database
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;
}
}
public int postLikes(@RequestBody FavoriteMusicRequestDto favorite) {
return service.saveFavorite(favorite);
}
}
......@@ -11,12 +11,21 @@ import lombok.ToString;
@ToString
public class FavoriteMusicRequestDto {
private String collectionId;
/// …. 중간 생략 ….
private String collectionType;
private String artistId;
private String artistName;
private String artistViewUrl;
private String collectionName;
private String collectionViewUrl;
public FavoriteMusic toEntity(){
public FavoriteMusic toEntity() {
FavoriteMusic music = new FavoriteMusic();
music.setCollectionId(this.collectionId);
/// …. 중간 생략 …. 여러분이 이 부분을 채워넣어야 합니다.
music.setCollectionType(this.collectionType);
music.setArtistId(this.artistId);
music.setArtistName(this.artistName);
music.setArtistViewUrl(this.artistViewUrl);
music.setCollectionName(this.collectionName);
music.setCollectionViewUrl(this.collectionViewUrl);
return music;
}
}
}
}
\ No newline at end of file
package com.ajou.prcoding.myweb.service;
import java.io.IOException;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.client.RestTemplate;
import com.ajou.prcoding.myweb.dto.FavoriteMusicRequestDto;
import com.ajou.prcoding.myweb.dto.MusicList;
import com.ajou.prcoding.myweb.entity.FavoriteMusic;
import com.ajou.prcoding.myweb.repository.FavoriteRepository;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.transaction.Transactional;
import lombok.RequiredArgsConstructor;
@Service
@Transactional
@RequiredArgsConstructor
public class MusicService {
RestTemplate restTemplate = new RestTemplate();
public MusicList musicSearchByPath(@PathVariable String term) {
try {
String response = restTemplate.getForObject("https://itunes.apple.com/search?term={term}&entity=album", String.class, term);
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 searchMusic(@RequestParam String term) {
try {
String response = restTemplate.getForObject("https://itunes.apple.com/search?term={term}&entity=album", String.class, term);
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
FavoriteRepository albumsRepo;
public List<FavoriteMusic> getLikes() {
try {
return albumsRepo.findAll();
} catch (Exception e) {
System.out.println(e.toString());
return null;
}
}
@Transactional
public int saveFavorite(@RequestBody FavoriteMusicRequestDto favorite)
{
FavoriteMusic music = albumsRepo.save(favorite.toEntity());
if(music != null) {
return 1;
}
else {
return 0;
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment