Skip to content
Snippets Groups Projects
Commit 3a92d0d7 authored by 심재엽's avatar 심재엽
Browse files

react-material & MySpringWeb

parent 7f32acce
No related branches found
No related tags found
No related merge requests found
{ {
"wrapperType": "collection", "wrapperType": "collection",
"collectionType": "Album", "collectionType": "Album",
"artistId":994656, "artistId": 1053924796,
"collectionId":580708175, "collectionId": 1490544506,
"amgArtistId":4739, "amgArtistId": 3170740,
"artistName":"Led Zeppelin", "artistName": "Yerin Baek",
"collectionName":"Led Zeppelin IV (Remastered)", "collectionName": "Every letter I sent you.",
"collectionCensoredName":"Led Zeppelin IV (Remastered)", "collectionCensoredName": "Every letter I sent you.",
"artistViewUrl":"https://music.apple.com/us/artist/led-zeppelin/994656?uo=4", "artistViewUrl": "https://music.apple.com/us/artist/yerin-baek/1053924796?uo=4",
"collectionViewUrl":"https://music.apple.com/us/album/led-zeppelin-iv-remastered/580708175?uo=4", "collectionViewUrl": "https://music.apple.com/us/album/every-letter-i-sent-you/1490544506?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", "artworkUrl60": "https://is4-ssl.mzstatic.com/image/thumb/Music115/v4/ca/58/77/ca5877d9-2e1e-0456-c3b2-7704e423dc70/Every_letter_I_sent_you_3000.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", "artworkUrl100": "https://is4-ssl.mzstatic.com/image/thumb/Music115/v4/ca/58/77/ca5877d9-2e1e-0456-c3b2-7704e423dc70/Every_letter_I_sent_you_3000.jpg/100x100bb.jpg",
"collectionPrice":9.99, "collectionPrice": 23.22,
"collectionExplicitness":"notExplicit", "collectionExplicitness": "explicit",
"trackCount":8, "contentAdvisoryRating": "Explicit",
"copyright":"℗ 1971 Atlantic Recording Corporation, a Warner Music Group Company. Marketed by Rhino Entertainment Company, a Warner Music Group Company.", "trackCount": 18,
"copyright": "℗ 2019 Blue Vinyl, under license to POCLANOS",
"country": "USA", "country": "USA",
"currency": "USD", "currency": "USD",
"releaseDate":"1971-11-08T08:00:00Z", "releaseDate": "2019-12-10T08:00:00Z",
"primaryGenreName":"Rock" "primaryGenreName": "Singer/Songwriter"
} }
\ No newline at end of file
...@@ -3,6 +3,7 @@ package kr.ajowsw.myspringweb.controller; ...@@ -3,6 +3,7 @@ package kr.ajowsw.myspringweb.controller;
import java.util.List; import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
...@@ -11,6 +12,7 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -11,6 +12,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import jakarta.transaction.Transactional;
import kr.ajowsw.myspringweb.dto.FavoriteMusicRequestDto; import kr.ajowsw.myspringweb.dto.FavoriteMusicRequestDto;
import kr.ajowsw.myspringweb.dto.MusicList; import kr.ajowsw.myspringweb.dto.MusicList;
import kr.ajowsw.myspringweb.entity.FavoriteMusic; import kr.ajowsw.myspringweb.entity.FavoriteMusic;
...@@ -39,14 +41,17 @@ public class MyWebController { ...@@ -39,14 +41,17 @@ public class MyWebController {
} }
@PostMapping(value="/likes") @PostMapping(value="/likes")
@Transactional
public int postLikes(@RequestBody FavoriteMusicRequestDto favorite) { public int postLikes(@RequestBody FavoriteMusicRequestDto favorite) {
return service.saveFavorite(favorite); return service.saveFavorite(favorite);
} }
@DeleteMapping(value = "/likes/{id}") @DeleteMapping(value = "/likes/{id}")
public void deleteFavorite(@PathVariable String id) { public ResponseEntity<String> deleteLikes(@PathVariable String id) {
service.deleteFavorite(id); service.deleteFavorite(id);
return ResponseEntity.ok("Deleted ID: " + id);
} }
} }
......
...@@ -3,7 +3,6 @@ import java.util.List; ...@@ -3,7 +3,6 @@ import java.util.List;
import java.io.IOException; import java.io.IOException;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
...@@ -44,7 +43,7 @@ public class MusicService { ...@@ -44,7 +43,7 @@ public class MusicService {
} }
} }
public int saveFavorite(@RequestBody FavoriteMusicRequestDto favorite) { public int saveFavorite(FavoriteMusicRequestDto favorite) {
FavoriteMusic music = albumsRepo.save(favorite.toEntity()); FavoriteMusic music = albumsRepo.save(favorite.toEntity());
if(music != null) { if(music != null) {
return 1; return 1;
...@@ -55,12 +54,13 @@ public class MusicService { ...@@ -55,12 +54,13 @@ public class MusicService {
} }
public void deleteFavorite(String id) { public void deleteFavorite(String id) {
try { boolean exists = albumsRepo.existsById(id);
albumsRepo.deleteById(id); if (!exists) {
} catch (Exception e) { throw new IllegalArgumentException("Invalid favorite ID: " + id);
System.out.println(e.toString());
return;
} }
albumsRepo.deleteById(id);
} }
} }
This diff is collapsed.
<!doctype html>
<html>
<head>
<title> muiBasic </title>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
</head>
<body>
<div id="app"></div>
<script src="./app.bundle.js" type="text/javascript"></script>
</body>
</html>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment