Skip to content
Snippets Groups Projects
Commit fff88957 authored by SangJun Park's avatar SangJun Park
Browse files

Add delete Favorite

parent d67fc0b3
Branches
No related tags found
No related merge requests found
Pipeline #8363 failed
......@@ -11,6 +11,8 @@ 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;
import org.springframework.web.bind.annotation.DeleteMapping;
import com.fasterxml.jackson.databind.ObjectMapper;
......@@ -37,7 +39,7 @@ public class MyWebController {
}
@GetMapping(value="/musicSearch")
public MusicList musicSearchByParam(@RequestParam(value="term") String name) {
public MusicList musicSearchByParam(@RequestParam(value="name") String name) {
return service.searchMusic(name);
}
......@@ -51,62 +53,9 @@ public class MyWebController {
return service.saveFavorite(favorite);
}
// @GetMapping(value = "/musicSearch/{term}")
// public MusicList musicSearchByPath(@PathVariable String term) {
// try {
// RestTemplate restTemplate = new RestTemplate();
// String url = "https://itunes.apple.com/search?term=" + term + "&entity=album";
// String response = restTemplate.getForObject(url, String.class); // String class로 변환
// ObjectMapper mapper = new ObjectMapper();
// MusicList list = mapper.readValue(response, MusicList.class); // MusicList 방식으로 변환
// System.out.println(list.getResultCount());
// return list; // MusicList를 반환
// } catch (IOException e) {
// System.out.println(e.toString());
// return null;
// }
// }
// @GetMapping(value = "/musicSearch")
// public MusicList musicSearchByParam(@RequestParam String term) {
// try {
// RestTemplate restTemplate = new RestTemplate();
// String url = "https://itunes.apple.com/search?term=" + term + "&entity=album";
// String response = restTemplate.getForObject(url, String.class); // String class로 변환
// ObjectMapper mapper = new ObjectMapper();
// MusicList list = mapper.readValue(response, MusicList.class); // MusicList 방식으로 변환
// System.out.println(list.getResultCount());
// return list;
// } catch (IOException e) {
// System.out.println(e.toString());
// return null;
// }
// }
// Get Favorite Music list from Database
// @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;
// }
// }
@DeleteMapping(value="/likes/{id}")
public int deleteLikes(@PathVariable String id){
return service.deleteFavorite(id);
}
}
......@@ -6,4 +6,5 @@ import kr.ajousw.myspringweb.entity.FavoriteMusic;
public interface FavoriteRepository extends JpaRepository<FavoriteMusic, String> {
List<FavoriteMusic> findAll();
void deleteById(String id);
}
......@@ -2,6 +2,8 @@ package kr.ajousw.myspringweb.service;
import java.io.IOException;
import java.util.List;
import java.util.Optional;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
......@@ -19,12 +21,13 @@ import lombok.RequiredArgsConstructor;
@Transactional // 데이터베이스의 원리 중 하나로 실행되다가 오류가 발생하면은, 다시 실행 이전의 상태로 돌아가는 것
@RequiredArgsConstructor
public class MusicService {
private final FavoriteRepository albumsRepo;
RestTemplate restTemplate = new RestTemplate();
public MusicList searchMusic(String term) {
public MusicList searchMusic(String name) {
try {
String url = "https://itunes.apple.com/search?term=" + term + "&entity=album";
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);
......@@ -45,7 +48,6 @@ public class MusicService {
}
}
@Transactional
public int saveFavorite(FavoriteMusicRequestDto favorite) {
FavoriteMusic music = albumsRepo.save(favorite.toEntity());
if (music != null) {
......@@ -55,4 +57,19 @@ public class MusicService {
}
}
public int deleteFavorite(String id) {
try {
Optional<FavoriteMusic> music = albumsRepo.findById(id);
if (music.isPresent()) {
albumsRepo.deleteById(id);
return 1; // 성공적으로 삭제된 경우
} else {
return 0; // 해당 ID의 음악이 없는 경우
}
} catch (Exception e) {
System.out.println(e.toString());
return -1; // 오류가 발생한 경우
}
}
}
\ 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