Skip to content
Snippets Groups Projects
Commit 2fda3af3 authored by DongHwi Kim's avatar DongHwi Kim
Browse files

delte complete

parent 78c24c06
No related branches found
No related tags found
No related merge requests found
{
"wrapperType":"collection",
"collectionType":"Album",
"artistId":994656,
"collectionId":580708175,
"amgArtistId":4739,
"artistName":"Led Zeppelin",
"collectionName":"Led Zeppelin IV (Remastered)",
"collectionCensoredName":"Led Zeppelin IV (Remastered)",
"artistViewUrl":"https://music.apple.com/us/artist/led-zeppelin/994656?uo=4",
"collectionViewUrl":"https://music.apple.com/us/album/led-zeppelin-iv-remastered/580708175?uo=4",
"artworkUrl60":"https://is1-ssl.mzstatic.com/image/thumb/Music115/v4/5c/15/9b/5c159b27-95ca-b9a7-84e3-28e795fffd39/dj.kvkrpptq.jpg/60x60bb.jpg",
"artworkUrl100":"https://is1-ssl.mzstatic.com/image/thumb/Music115/v4/5c/15/9b/5c159b27-95ca-b9a7-84e3-28e795fffd39/dj.kvkrpptq.jpg/100x100bb.jpg",
"collectionPrice":9.99,
"collectionExplicitness":"notExplicit",
"trackCount":8,
"copyright":"℗ 1971 Atlantic Recording Corporation, a Warner Music Group Company. Marketed by Rhino Entertainment Company, a Warner Music Group Company.",
"country":"USA",
"currency":"USD",
"releaseDate":"1971-11-08T08:00:00Z",
"primaryGenreName":"Rock"
}
......@@ -4,8 +4,11 @@ import java.io.IOException;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
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.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
......@@ -13,53 +16,81 @@ import org.springframework.web.client.RestTemplate;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.transaction.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 kr.ajousw.myspringweb.service.MusicService;
@RestController
public class MyWebController{
private final RestTemplate restTemplate = new RestTemplate();
private final String BASE_URL = "<https://itunes.apple.com/search?entity=song&attribute=songTerm&term=>";
@GetMapping(value = "/musicSearch/{term}")
public MusicList musicSearchBypath(@PathVariable String term){
try{
String response = restTemplate.getForObject(BASE_URL + term, 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);
// try{
// String response = restTemplate.getForObject(BASE_URL + term, 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 = "/musicSearch")
public MusicList musicSearchByParam(@RequestParam("term") String term){
try{
String response = restTemplate.getForObject(BASE_URL + term, 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("term") String name){
return service.searchMusic(name);
// try{
// String response = restTemplate.getForObject(BASE_URL + term, 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
FavoriteRepository albumsRepo;
// @Autowired
// FavoriteRepository albumsRepo;
@GetMapping(value = "/likes")
public List<FavoriteMusic> getLikes(){
try{
return albumsRepo.findAll();
} catch(Exception e){
System.out.println(e.toString());
return null;
return service.getLikes();
// try{
// return albumsRepo.findAll();
// } catch(Exception e){
// System.out.println(e.toString());
// return null;
// }
}
// @Autowired
// FavoriteRepository albumsRepo;
@PostMapping(value = "/likes")
// @Transactional
public int postLikes(@RequestBody FavoriteMusicRequestDto favorite){
return service.saveFavorite(favorite);
// FavoriteMusic music = albumsRepo.save(favorite.toEntity());
// if(music != null){
// return 1;
// }
// else{
// return 0;
// }
}
@DeleteMapping(value = "/likes/{id}")
public void deleteFavorite(@PathVariable String id) {
service.deleteFavorite(id);
}
}
\ No newline at end of file
package kr.ajousw.myspringweb.dto;
import jakarta.persistence.Column;
import kr.ajousw.myspringweb.entity.FavoriteMusic;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
public class FavoriteMusicRequestDto {
private String collectionId;
private String artistId;
private String artistName;
private String artistViewUrl;
private String collectionName;
private String collectionViewUrl;
public FavoriteMusic toEntity(){
FavoriteMusic music = new FavoriteMusic();
music.setCollectionId(this.collectionId);
music.setArtistId(this.artistId);
music.setArtistName(this.artistName);
music.setArtistViewUrl(this.artistViewUrl);
music.setCollectionName(this.collectionName);
music.setCollectionViewUrl(this.collectionViewUrl);
return music;
}
}
package kr.ajousw.myspringweb.repository;
import java.util.Iterator;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
......@@ -9,4 +10,6 @@ import kr.ajousw.myspringweb.entity.FavoriteMusic;
public interface FavoriteRepository extends JpaRepository<FavoriteMusic, String>{
List<FavoriteMusic> findAll();
void deleteById(String id);
}
package kr.ajousw.myspringweb.service;
import java.io.IOException;
import java.util.List;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.transaction.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;
@Service
@Transactional
@RequiredArgsConstructor
public class MusicService {
private final FavoriteRepository albumsRepo;
RestTemplate restTemplate = new RestTemplate();
HttpServletRequest request;
public MusicList searchMusic(String name) {
MusicList musicList = null;
try {
String jsonString = restTemplate.getForObject(request.getRequestURI(), String.class);
ObjectMapper objectMapper = new ObjectMapper();
musicList = objectMapper.readValue(jsonString, MusicList.class);
} catch (IOException e) {
e.printStackTrace();
}
return musicList;
}
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;
}
}
public void deleteFavorite(String id){
albumsRepo.deleteById(id);
}
}
No preview for this file type
File added
No preview for this file type
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment