Select Git revision
-
ERHANG WEI authoredERHANG WEI authored
MusicService.java 1.80 KiB
package com.ajou.procoding.myweb.service;
import java.io.IOException;
import java.util.List;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import com.ajou.procoding.myweb.dto.FavoriteMusicRequestDto;
import com.ajou.procoding.myweb.dto.MusicList;
import com.ajou.procoding.myweb.entity.FavoriteMusic;
import com.ajou.procoding.myweb.repository.FavoriteRepository;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.transaction.Transactional;
import lombok.RequiredArgsConstructor;
@Service
@Transactional
@RequiredArgsConstructor
public class MusicService {
private final FavoriteRepository albumsRepo;
private final RestTemplate restTemplate = new RestTemplate();
//iTunes API를 호출해 앨범 검색 결과(MusicList) 반환
public MusicList searchMusic(String name) {
try {
String url = String.format("https://itunes.apple.com/search?term=%s&entity=album", name);
String response = restTemplate.getForObject(url, String.class);
ObjectMapper mapper = new ObjectMapper();
MusicList list = mapper.readValue(response, MusicList.class);
System.out.println("ResultCount: " + list.getResultCount());
return list;
} catch (IOException e) {
System.out.println(e.toString());
return null;
}
}
//DB에서 FavoriteMusic 목록을 조회
public List<FavoriteMusic> getLikes() {
return albumsRepo.findAll();
}
//즐겨찾기 등록
//DTO -> 엔티티 변환 후 DB에 저장, 성공 시 1, 실패 시 0 반환
public int saveFavorite(FavoriteMusicRequestDto favorite) {
FavoriteMusic music = albumsRepo.save(favorite.toEntity());
return (music != null) ? 1 : 0;
}
}