diff --git a/pom.xml b/pom.xml index 91feee13dd37e7c1c91859e1dd356aeed8e3673e..5d69ad31b7fc6c21c474a4d89c09c847bcb9d932 100644 --- a/pom.xml +++ b/pom.xml @@ -17,6 +17,13 @@ <java.version>17</java.version> </properties> <dependencies> + + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + <version>8.0.33</version> + </dependency> + <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> diff --git a/postSong.json b/postSong.json new file mode 100644 index 0000000000000000000000000000000000000000..ddb0c7efb7bca05f5cdcb8b0000059a226fd2add --- /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 21a1b1eccdf642e346eb41f4b4019496915767f4..c088c2349e43f6a5b0440f6f8b592e0df8527dfa 100644 --- a/src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java +++ b/src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java @@ -1,15 +1,24 @@ package kr.ajousw.myspringweb.controller; import java.io.IOException; +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.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; 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; @RestController public class MyWebController { @@ -51,4 +60,29 @@ public class MyWebController { } return null; } + + @Autowired + FavoriteRepository albumsRepo; + + @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; + } + } } 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 0000000000000000000000000000000000000000..4ec75523e8b4dc774fa6a5f5b4a079822b10ca1f --- /dev/null +++ b/src/main/java/kr/ajousw/myspringweb/dto/FavoriteMusicRequestDto.java @@ -0,0 +1,35 @@ +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 collectionType; + 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.setCollectionType(this.collectionType); + music.setArtistId(this.artistId); + music.setArtistName(this.artistName); + music.setArtistViewUrl(this.artistViewUrl); + music.setCollectionName(this.collectionName); + music.setCollectionViewUrl(this.collectionViewUrl); + + return music; + } +} \ No newline at end of file diff --git a/src/main/java/kr/ajousw/myspringweb/entity/FavoriteMusic.java b/src/main/java/kr/ajousw/myspringweb/entity/FavoriteMusic.java new file mode 100644 index 0000000000000000000000000000000000000000..d331fb2f89ee49369f3ece9612d0950b2ecb9a53 --- /dev/null +++ b/src/main/java/kr/ajousw/myspringweb/entity/FavoriteMusic.java @@ -0,0 +1,33 @@ +package kr.ajousw.myspringweb.entity; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +@Entity +@Table(name = "favoriteMusic") +@Getter +@Setter +@ToString + +public class FavoriteMusic { + @Id + @Column(length = 32) + private String collectionId; + @Column + private String collectionType; + @Column + private String artistId; + @Column + private String artistName; + @Column + private String artistViewUrl; + @Column + private String collectionName; + @Column + private String collectionViewUrl; +} diff --git a/src/main/java/kr/ajousw/myspringweb/repository/FavoriteRepository.java b/src/main/java/kr/ajousw/myspringweb/repository/FavoriteRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..51b00412e84da7ca7d84c446c86a0adf9bf6892b --- /dev/null +++ b/src/main/java/kr/ajousw/myspringweb/repository/FavoriteRepository.java @@ -0,0 +1,10 @@ +package kr.ajousw.myspringweb.repository; + +import java.util.List; +import org.springframework.data.jpa.repository.JpaRepository; +import kr.ajousw.myspringweb.entity.FavoriteMusic; + +public interface FavoriteRepository extends + JpaRepository<FavoriteMusic, String> { + List<FavoriteMusic> findAll(); +} \ No newline at end of file