From 15c12cff9732f0baa49ea7e17d2f669ca081a01e Mon Sep 17 00:00:00 2001 From: KimSiwon <kimsiw42@ajou.ac.kr> Date: Mon, 17 Jul 2023 15:58:23 +0900 Subject: [PATCH] post_likes --- postSong.json | 22 +++++++++++++++++++ .../controller/MyWebController.java | 16 ++++++++++++++ .../dto/FavoriteMusicRequestDto.java | 19 ++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 postSong.json create mode 100644 src/main/java/kr/ajousw/myspringweb/dto/FavoriteMusicRequestDto.java diff --git a/postSong.json b/postSong.json new file mode 100644 index 0000000..ddb0c7e --- /dev/null +++ b/postSong.json @@ -0,0 +1,22 @@ +{ + "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" +} diff --git a/src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java b/src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java index e58cd5e..71de4a8 100644 --- a/src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java +++ b/src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java @@ -6,12 +6,17 @@ import java.util.List; import org.springframework.beans.factory.annotation.Autowired; 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.RequestParam; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.RequestBody; + import org.springframework.web.client.RestTemplate; import com.fasterxml.jackson.databind.ObjectMapper; +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; @@ -47,6 +52,17 @@ public class MyWebController { 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; + } + } @GetMapping(value="/musicSearch") public MusicList musicSearchByParam(@RequestParam String term) { diff --git a/src/main/java/kr/ajousw/myspringweb/dto/FavoriteMusicRequestDto.java b/src/main/java/kr/ajousw/myspringweb/dto/FavoriteMusicRequestDto.java new file mode 100644 index 0000000..d42caad --- /dev/null +++ b/src/main/java/kr/ajousw/myspringweb/dto/FavoriteMusicRequestDto.java @@ -0,0 +1,19 @@ +package kr.ajousw.myspringweb.dto; + +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 collectionViewUrl; + public FavoriteMusic toEntity() { + FavoriteMusic music = new FavoriteMusic(); + music.setCollectionId(this.collectionId); + return music; + } +} \ No newline at end of file -- GitLab