Skip to content
Snippets Groups Projects
Select Git revision
  • 456f6767383cba61f4f19da5b3e1a4ed51382bae
  • master default protected
2 results

MusicService.java

Blame
  • user avatar
    suhyeon authored
    456f6767
    History
    MusicService.java 2.28 KiB
    package kr.ajousw.myspringweb.service;
    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 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.RequestBody;
    import org.springframework.web.client.RestTemplate;
    
    import com.fasterxml.jackson.databind.ObjectMapper;
    
    import jakarta.transaction.Transactional;
    import lombok.RequiredArgsConstructor;
    
    @Service
    @Transactional
    @RequiredArgsConstructor
    
    public class MusicService {
        private final FavoriteRepository albumsRepo;
        RestTemplate restTemplate = new RestTemplate();
    
        public MusicList searchMusic(@PathVariable String term) {
            try {
                String url = String.format("https://itunes.apple.com/search?term=%s&entity=album", term);
                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;
                
            }
        }
    
        public int saveFavorite(@RequestBody FavoriteMusicRequestDto favorite){
            FavoriteMusic music = albumsRepo.save(favorite.toEntity());
    
            if(music != null) {
                return 1;
            }
            else {
                return 0;
            }
        }
    
        public int deleteFavorite(@PathVariable String id) {
    
            try {
                albumsRepo.deleteById(id);
                return 1;
    
            } catch (Exception e) {
                System.out.println(e.toString());
                return 0;
    
            }
        }
    }