From 2fda3af3ed256d2ba186c42f45469f5bb1352570 Mon Sep 17 00:00:00 2001
From: DongHwi Kim <ken7905@ajou.ac.kr>
Date: Mon, 17 Jul 2023 18:52:44 +0900
Subject: [PATCH] delte complete

---
 postSong.json                                 |  22 +++++
 .../controller/MyWebController.java           |  93 ++++++++++++------
 .../dto/FavoriteMusicRequestDto.java          |  30 ++++++
 .../repository/FavoriteRepository.java        |   3 +
 .../myspringweb/service/MusicService.java     |  62 ++++++++++++
 .../controller/MyWebController.class          | Bin 3104 -> 2458 bytes
 .../dto/FavoriteMusicRequestDto.class         | Bin 0 -> 2582 bytes
 .../repository/FavoriteRepository.class       | Bin 619 -> 812 bytes
 .../myspringweb/service/MusicService.class    | Bin 0 -> 3035 bytes
 9 files changed, 179 insertions(+), 31 deletions(-)
 create mode 100644 postSong.json
 create mode 100644 src/main/java/kr/ajousw/myspringweb/dto/FavoriteMusicRequestDto.java
 create mode 100644 src/main/java/kr/ajousw/myspringweb/service/MusicService.java
 create mode 100644 target/classes/kr/ajousw/myspringweb/dto/FavoriteMusicRequestDto.class
 create mode 100644 target/classes/kr/ajousw/myspringweb/service/MusicService.class

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 a05f7c4..29e7784 100644
--- a/src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java
+++ b/src/main/java/kr/ajousw/myspringweb/controller/MyWebController.java
@@ -4,8 +4,11 @@ import java.io.IOException;
 import java.util.List;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
 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;
@@ -13,53 +16,81 @@ import org.springframework.web.client.RestTemplate;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
 import jakarta.servlet.http.HttpServletRequest;
+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;
+import kr.ajousw.myspringweb.service.MusicService;
 
 @RestController
 public class MyWebController{
     private final RestTemplate restTemplate = new RestTemplate();
     private final String BASE_URL = "<https://itunes.apple.com/search?entity=song&attribute=songTerm&term=>";
 
-    @GetMapping(value = "/musicSearch/{term}")
-    public MusicList musicSearchBypath(@PathVariable String term){
-        try{
-            String response = restTemplate.getForObject(BASE_URL + term, String.class);
-            ObjectMapper mapper = new ObjectMapper();
-            MusicList list = mapper.readValue(response,MusicList.class);
-            System.out.println(list.getResultCount());
-            return list;
-        } catch(IOException e){
-            System.out.println(e.toString());
-            return null;
-        }
+    @Autowired
+    MusicService service;
+
+    @GetMapping(value = "/musicSearch/{name}")
+    public MusicList musicSearchBypath(@PathVariable String name){
+        return service.searchMusic(name);
+        // try{
+        //     String response = restTemplate.getForObject(BASE_URL + term, String.class);
+        //     ObjectMapper mapper = new ObjectMapper();
+        //     MusicList list = mapper.readValue(response,MusicList.class);
+        //     System.out.println(list.getResultCount());
+        //     return list;
+        // } catch(IOException e){
+        //     System.out.println(e.toString());
+        //     return null;
+        // }
     }
 
     @GetMapping(value = "/musicSearch")
-    public MusicList musicSearchByParam(@RequestParam("term") String term){
-        try{
-            String response = restTemplate.getForObject(BASE_URL + term, String.class);
-            ObjectMapper mapper = new ObjectMapper();
-            MusicList list = mapper.readValue(response,MusicList.class);
-            System.out.println(list.getResultCount());
-            return list;
-        } catch(IOException e){
-            System.out.println(e.toString());
-            return null;
-        }
+    public MusicList musicSearchByParam(@RequestParam("term") String name){
+        return service.searchMusic(name);
+        // try{
+        //     String response = restTemplate.getForObject(BASE_URL + term, String.class);
+        //     ObjectMapper mapper = new ObjectMapper();
+        //     MusicList list = mapper.readValue(response,MusicList.class);
+        //     System.out.println(list.getResultCount());
+        //     return list;
+        // } catch(IOException e){
+        //     System.out.println(e.toString());
+        //     return null;
+        // }
     }
 
-    @Autowired
-    FavoriteRepository albumsRepo;
+    // @Autowired
+    // FavoriteRepository albumsRepo;
     @GetMapping(value = "/likes")
     public List<FavoriteMusic> getLikes(){
-        try{
-            return albumsRepo.findAll();
-        } catch(Exception e){
-            System.out.println(e.toString());
-            return null;
-        }
+        return service.getLikes();
+        // try{
+        //     return albumsRepo.findAll();
+        // } catch(Exception e){
+        //     System.out.println(e.toString());
+        //     return null;
+        // }
+    }
+    // @Autowired
+    // FavoriteRepository albumsRepo;
+    @PostMapping(value = "/likes")
+    // @Transactional
+    public int postLikes(@RequestBody FavoriteMusicRequestDto favorite){
+        return service.saveFavorite(favorite);
+        // FavoriteMusic music = albumsRepo.save(favorite.toEntity());
+        // if(music != null){
+        //     return 1;
+        // } 
+        // else{
+        //     return 0;
+        // }
+    }
+    @DeleteMapping(value = "/likes/{id}")
+    public void deleteFavorite(@PathVariable String id) {
+        service.deleteFavorite(id);
+
     }
 
 }
\ No newline at end of file
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..e251cee
--- /dev/null
+++ b/src/main/java/kr/ajousw/myspringweb/dto/FavoriteMusicRequestDto.java
@@ -0,0 +1,30 @@
+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 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.setArtistId(this.artistId);
+        music.setArtistName(this.artistName);
+        music.setArtistViewUrl(this.artistViewUrl);
+        music.setCollectionName(this.collectionName);
+        music.setCollectionViewUrl(this.collectionViewUrl);
+        return music;
+    }
+
+}
diff --git a/src/main/java/kr/ajousw/myspringweb/repository/FavoriteRepository.java b/src/main/java/kr/ajousw/myspringweb/repository/FavoriteRepository.java
index b25b2ab..2ab94f8 100644
--- a/src/main/java/kr/ajousw/myspringweb/repository/FavoriteRepository.java
+++ b/src/main/java/kr/ajousw/myspringweb/repository/FavoriteRepository.java
@@ -1,5 +1,6 @@
 package kr.ajousw.myspringweb.repository;
 
+import java.util.Iterator;
 import java.util.List;
 
 import org.springframework.data.jpa.repository.JpaRepository;
@@ -8,5 +9,7 @@ import kr.ajousw.myspringweb.entity.FavoriteMusic;
 
 public interface FavoriteRepository extends JpaRepository<FavoriteMusic, String>{
     List<FavoriteMusic> findAll();
+
+    void deleteById(String id);
     
 }
diff --git a/src/main/java/kr/ajousw/myspringweb/service/MusicService.java b/src/main/java/kr/ajousw/myspringweb/service/MusicService.java
new file mode 100644
index 0000000..0d6ac41
--- /dev/null
+++ b/src/main/java/kr/ajousw/myspringweb/service/MusicService.java
@@ -0,0 +1,62 @@
+package kr.ajousw.myspringweb.service;
+
+import java.io.IOException;
+import java.util.List;
+
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import jakarta.servlet.http.HttpServletRequest;
+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;
+import lombok.RequiredArgsConstructor;
+
+@Service
+@Transactional
+@RequiredArgsConstructor
+public class MusicService {
+    private final FavoriteRepository albumsRepo;
+    RestTemplate restTemplate = new RestTemplate();
+    HttpServletRequest request;
+    public MusicList searchMusic(String name) {
+
+        MusicList musicList = null;
+        try {
+            String jsonString = restTemplate.getForObject(request.getRequestURI(), String.class);
+            ObjectMapper objectMapper = new ObjectMapper();
+            musicList = objectMapper.readValue(jsonString, MusicList.class);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        return musicList;
+    }
+
+    public List<FavoriteMusic> getLikes() {
+        try{
+            return albumsRepo.findAll();
+        } catch(Exception e){
+            System.out.println(e.toString());
+            return null;
+        }
+    }
+
+    public int saveFavorite(FavoriteMusicRequestDto favorite) {
+        FavoriteMusic music = albumsRepo.save(favorite.toEntity());
+        if(music != null){
+            return 1;
+        } 
+        else{
+            return 0;
+        }
+    }
+
+    public void deleteFavorite(String id){
+        albumsRepo.deleteById(id);
+    }
+}
diff --git a/target/classes/kr/ajousw/myspringweb/controller/MyWebController.class b/target/classes/kr/ajousw/myspringweb/controller/MyWebController.class
index f701fc68275b6eafdaedfcc4a848ff9ed28e20bb..53f84323cb344fa26ed349a62edf81fad185a3f4 100644
GIT binary patch
delta 989
zcmZ1=F-w^1)W2Q(7#J9A8T>YKaWZnV7pE4LWhSRGGU!ZJWE2;Ha`k;ni!+mhA#$5T
z8ILlu<R#{&PL^Yi7v*GNWYFMY;9=n9V$fpHVQ0{0WYC%@Af}5=FAsw*gCZjXcX4WB
zQE~>@R7M7nS(9(F6|=IGq!#5)_F}J)0vTn+!(hT-%E-W3kY8NllbM}b%*bG-0dm&l
z1#B#`Zi!|2MVTe3U_*jZ3rkarOI%9wtu;Lv8B8aiWzysi$S*GOO)MzL%uBb1icPj<
zXV-DcPpPy9+2Fv#;K*RZ$iP#aSe6PikCA~R4QezagE7oH9hfw_b&L#rDXBTBB}n>3
zCr@M&VF_boFb6q9+XXC*a0s`44#+e5)tM=^AXj+uFt{+dGBPk_rcCzdn8wI9`5A{b
zuQUS-gA4;dgDit6gY;xQPKSD11||k31_lOBtt|}d+S?d3H!v_TFfqt5Ffgz&FfuSO
zs4&PfFffQg6fwv#$TNTdCxadX2LmI6J_7>-D<gv*0|Nsig8_pg0}BHm0|Nse10#bH
z10#cSGy`KXgCT<|0|NsOBLgFY5lFC@!I(h^oIaT9A?D(;+?aUFO&ClWm>JB#t~bZx
z2n(>4Ap1eS;sDvWjlr@W-McPe8+pK9=YV>bk-?h52FYi(AWwjOW&!pYJIH5t3=Ci!
z&;!(d4cJMD01X7&01eQ3s1*zhoD5D3&WI3o0*9yzgDaA~Zg6|u5%#J<?R7+pNRN$h
rd%3`Y9K*oD5Ql6x$ZB0sWHN9vcp=B87g(n^nDhY$B`7KQGB5xDRqmVC

literal 3104
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
Vh9U+ghElL|%D~P6<(+Z{1^~(TGG+h(

diff --git a/target/classes/kr/ajousw/myspringweb/dto/FavoriteMusicRequestDto.class b/target/classes/kr/ajousw/myspringweb/dto/FavoriteMusicRequestDto.class
new file mode 100644
index 0000000000000000000000000000000000000000..1e3a413feb6e9a8f713401ae07b80d63edd9a36b
GIT binary patch
literal 2582
zcmX^0Z`VEs1_oP(EOrJaMh3&|BK^dy{L<ob{oKmpf}+g4^zzgs{gje?eYeE2{G!Z~
zRNvC#%;ccd!qU{@5|@&Eb_Nzk27#=^vPAuy#JqHU|D>$c<Pt^(p5*+ToYdr!%=|ph
z6h;OiAB2+N5|Fvpj0_x!MJ1WVB_Me&2-7byH<gir7s3h4Of3&B%3);SLzo3oAczov
zD`K<B%*!mXV`N~~&<tZ_U~$e*N#$Z-W)R?E;9=lpWZ?J7%uDqv%}q)z3Q0`LNd>tn
zKRGccEU_pP#D@y9lw@QUGcp+akQ@>q50&J*=9OfYR5CK?X=vgwA{DFxH9W1^86+4P
zw6NQWO#>H$ID-Hu10#bp4+AR$8;C2*!yv~X&&a@EoLb_H68NGTn4zy32GXs_!@v&F
zt<1xq0@BT0oLb@tjTVp!H68{IhzboJ22GF(UbqTSWPsFY^DuBi)adds=z-J-z|}zG
z2c*n^hk*;C%!r4<7^F-P#i=mkOnDf%A?nO|7%V{QL{QX0jbvnC%>|`JMg|>HLYk3*
zKOH@QL^L!pLx_=qI~@@gj10VR9>}4L3<7XI+(CjUCPS2opoqbh3izg$WaOs=Bo-y+
zrk11@6*Dq$l;lIQ20Mc*BZD}4hH)y*%t=Wt;$U!RWKhMC8#NFa!!yN}i@}A#6O{br
zxfmE3ym=U`8EimezB~+m4E~G^Y>5R0sd*`k47%772u6rN9bnDD5Xi{Dt)l?RrC@s)
z8G?BjY#D4g7(y8tcwthY0I&sF9nQmG2a=3rWDtN!LPG*9AI-yH50Z~%WDwL*K==V}
zKs*nF14uz4BZCOC0%Svyc^Di)YEl^)7&SrOOy^;6X0Tyo;0n$!ElN&x%LHY585|*}
z2MTTmMFvI&W(EcZHU=h8wqjslU;<?jFwMch2BtZoG#8ZS2GjfujG%Icfsuiafq_Av
zfsuicfq{WlYdZt~MzA(Pu(2RP9tI%>1_mC80tR6Q5e5bZMg~y^F{tJ)1||k31_lPJ
z-3;Q9+ZiN%w6(S{NNr<~0nrNE7?eP?>NW;-5UsV1K?g+ZZ(}e7(I(p%%(OSaZB%05
zU|?VnVc=j8We{KxV~}7FXHZ~}V9;QYWH4ZmVz6M42D?TKVk6Ww91KPbmJC*4Pgpb9
zK;4D#)D{LQgcWRHk8pyGLHCp`R?P~;X|}_vS(P}=_E<G*5vSP!t7d)TG&^F|Y(ku7
zIR<$KCU6q6f~EpCE$yugQs`-j3mn{#SYw068YtPaGJvAP36%608CV$v7#KmtIyNH}
zh&7TO*+_P<k($_DsY<Mopsd8m0Cgn?*hoF>MrsjjBq&$HjpPIyX^h=SePWFSWpKEW
zTwo(Dup4PYtdXFy0&XNX*hpu1a;axv24|(v-3%^~LT=j`JhZkkcx_|w5enGG;G?yT
zAqd0{fw03s><9=u3dD|qu;W1N1PD6`#7^19;IoY(4L$jBgA))WzlK5+5F<kdxZubH
E0H$fl<^TWy

literal 0
HcmV?d00001

diff --git a/target/classes/kr/ajousw/myspringweb/repository/FavoriteRepository.class b/target/classes/kr/ajousw/myspringweb/repository/FavoriteRepository.class
index 4a1f88d371634494cc49158cf175b63f6d9994e2..1d2b7d568dc3f3bd42637dc87c15108297b5b75d 100644
GIT binary patch
delta 354
zcmaFOvWAW8)W2Q(7#J9A8DuAN{i^3mNzF+uNp-69OkrdY)$qwmEKAhSNz6;v4=yRn
z%uBb{3}a+q%1mKo5b#Yc$;eL$NGwXsO)W_+Dn?W9pOlrFTmn|l;+&t7%FZCf$RL1j
z9ybFcg9r};Hv<nN1HVt^WJ5+3MKKLcBzrweQi~Fka#F29N+o$1*cmt`2Qwb1XJKIk
zu^AW{I2jlim>9TN7(vD`Ff#BlFfgz(GVn4m2skouGw?GoG6*m*FlaL{F)%SOFmP*W
zA7BvN$so+cuo0|Nl!1YPje(JYfq{`h3@ifD$j%@R)u_(E2$p5n+Q}fn$glydL=}rJ
O1||k6u%tB9O)>!QG(0!}

delta 156
zcmZ3(_L_z3)W2Q(7#J9A8AK*>{n8NA(DcblEKAhSNz6;v_bf>*N=(X0wPs{san4Uk
z<z`@H;NxLnXW*Dz$EZ2^6yv@KCKg5zpMjBqlYxPOiGfSNk%657q>zV!fkB;tk%5tc
lfq`9XCj&1d!v?Steg*~xHn1=wg8*0rq)`ye5`r2d3;<^n7V`iA

diff --git a/target/classes/kr/ajousw/myspringweb/service/MusicService.class b/target/classes/kr/ajousw/myspringweb/service/MusicService.class
new file mode 100644
index 0000000000000000000000000000000000000000..8d7cca1b85391f6419bec63f0d2ab3ce7e2e280f
GIT binary patch
literal 3035
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

literal 0
HcmV?d00001

-- 
GitLab