From 7004bc2cf958ea2cf61887192f2d51e40170bf3e Mon Sep 17 00:00:00 2001
From: Kim Daeun <iop2799@ajou.ac.kr>
Date: Wed, 9 Apr 2025 17:20:15 +0900
Subject: [PATCH] post_likes

---
 .../myweb/controller/MyWebController.java     | 18 +++++++++++
 .../myweb/dto/FavoriteMusicRequestDto.java    | 32 +++++++++++++++++++
 2 files changed, 50 insertions(+)
 create mode 100644 src/main/java/com/ajou/procoding/myweb/dto/FavoriteMusicRequestDto.java

diff --git a/src/main/java/com/ajou/procoding/myweb/controller/MyWebController.java b/src/main/java/com/ajou/procoding/myweb/controller/MyWebController.java
index af5e39c..a201231 100644
--- a/src/main/java/com/ajou/procoding/myweb/controller/MyWebController.java
+++ b/src/main/java/com/ajou/procoding/myweb/controller/MyWebController.java
@@ -5,21 +5,27 @@ 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.ajou.procoding.myweb.dto.FavoriteMusicRequestDto;
 import com.ajou.procoding.myweb.dto.MusicList;
 import com.ajou.procoding.myweb.entity.FavoriteMusic;
 import com.ajou.procoding.myweb.repository.FavoriteRepository;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
+import jakarta.transaction.Transactional;
+
 @RestController
 public class MyWebController {
     
     RestTemplate restTemplate = new RestTemplate();
     @Autowired
     FavoriteRepository albumsRepo;
+
     
     @GetMapping(value="/musicSearch/{term}")
     public MusicList musicSearchByPath(@PathVariable String term) {
@@ -66,6 +72,18 @@ 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;
+    }
+}
+
     
 
 
diff --git a/src/main/java/com/ajou/procoding/myweb/dto/FavoriteMusicRequestDto.java b/src/main/java/com/ajou/procoding/myweb/dto/FavoriteMusicRequestDto.java
new file mode 100644
index 0000000..3bbecdc
--- /dev/null
+++ b/src/main/java/com/ajou/procoding/myweb/dto/FavoriteMusicRequestDto.java
@@ -0,0 +1,32 @@
+package com.ajou.procoding.myweb.dto;
+
+import com.ajou.procoding.myweb.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;
+    }
+}
-- 
GitLab