Skip to content
Snippets Groups Projects
Commit 739c81a2 authored by 장 무현's avatar 장 무현
Browse files

Add delete Favorite

parent a5f7b87a
Branches
No related tags found
No related merge requests found
package com.ajou.procoding.myweb; package com.ajou.prcoding.myweb;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
......
package com.ajou.procoding.myweb.controller; package com.ajou.prcoding.myweb.controller;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
...@@ -6,11 +6,11 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -6,11 +6,11 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import com.ajou.procoding.myweb.dto.FavoriteMusicRequestDto; import com.ajou.prcoding.myweb.dto.FavoriteMusicRequestDto;
import com.ajou.procoding.myweb.dto.MusicList; import com.ajou.prcoding.myweb.dto.MusicList;
import com.ajou.procoding.myweb.entity.FavoriteMusic; import com.ajou.prcoding.myweb.entity.FavoriteMusic;
import com.ajou.procoding.myweb.repository.FavoriteRepository; import com.ajou.prcoding.myweb.repository.FavoriteRepository;
import com.ajou.procoding.myweb.service.MusicService; import com.ajou.prcoding.myweb.service.MusicService;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.transaction.Transactional; import jakarta.transaction.Transactional;
...@@ -19,13 +19,14 @@ import java.io.IOException; ...@@ -19,13 +19,14 @@ import java.io.IOException;
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.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
@RestController @RestController
public class MyWebController { public class MyWebController {
@Autowired @Autowired
MusicService service; MusicService service;
...@@ -39,16 +40,26 @@ public class MyWebController { ...@@ -39,16 +40,26 @@ public class MyWebController {
return service.searchMusic(name); return service.searchMusic(name);
} }
@GetMapping(value="/likes") //Get Favorite Music list from Database @GetMapping(value = "/likes") // Get Favorite Music list from Database
public List<FavoriteMusic> getLikes() { public List<FavoriteMusic> getLikes() {
return service.getLikes(); return service.getLikes();
} }
@PostMapping(value="/likes") @PostMapping(value = "/likes")
public int postLikes(@RequestBody FavoriteMusicRequestDto favorite) { public int postLikes(@RequestBody FavoriteMusicRequestDto favorite) {
return service.saveFavorite(favorite); return service.saveFavorite(favorite);
} }
} @DeleteMapping("/likes/{id}")
public ResponseEntity<String> deleteFavorite(@PathVariable String id) {
try {
service.deleteFavorite(id); // service 호출
return ResponseEntity.ok("삭제 완료: " + id);
} catch (IllegalArgumentException e) {
return ResponseEntity.badRequest().body("존재하지 않는 ID: " + id);
} catch (Exception e) {
return ResponseEntity.internalServerError().body("서버 오류 발생");
}
}
}
package com.ajou.procoding.myweb.dto; package com.ajou.prcoding.myweb.dto;
import com.ajou.procoding.myweb.entity.FavoriteMusic; import com.ajou.prcoding.myweb.entity.FavoriteMusic;
import jakarta.persistence.Column; import jakarta.persistence.Column;
import lombok.Getter; import lombok.Getter;
......
package com.ajou.procoding.myweb.dto; package com.ajou.prcoding.myweb.dto;
import java.util.List; import java.util.List;
......
package com.ajou.procoding.myweb.dto; package com.ajou.prcoding.myweb.dto;
public @interface Tostring { public @interface Tostring {
......
package com.ajou.procoding.myweb.entity; package com.ajou.prcoding.myweb.entity;
import jakarta.persistence.Column; import jakarta.persistence.Column;
import jakarta.persistence.Entity; import jakarta.persistence.Entity;
......
package com.ajou.procoding.myweb.repository; package com.ajou.prcoding.myweb.repository;
import java.util.List; import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import com.ajou.procoding.myweb.entity.FavoriteMusic; import com.ajou.prcoding.myweb.entity.FavoriteMusic;
public interface FavoriteRepository extends public interface FavoriteRepository extends JpaRepository<FavoriteMusic, String> {
JpaRepository<FavoriteMusic, String> {
List<FavoriteMusic> findAll(); List<FavoriteMusic> findAll();
void deleteById(String id);
} }
package com.ajou.procoding.myweb.service; package com.ajou.prcoding.myweb.service;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
...@@ -6,10 +6,10 @@ import java.util.List; ...@@ -6,10 +6,10 @@ import java.util.List;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import com.ajou.procoding.myweb.dto.FavoriteMusicRequestDto; import com.ajou.prcoding.myweb.dto.FavoriteMusicRequestDto;
import com.ajou.procoding.myweb.dto.MusicList; import com.ajou.prcoding.myweb.dto.MusicList;
import com.ajou.procoding.myweb.entity.FavoriteMusic; import com.ajou.prcoding.myweb.entity.FavoriteMusic;
import com.ajou.procoding.myweb.repository.FavoriteRepository; import com.ajou.prcoding.myweb.repository.FavoriteRepository;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.transaction.Transactional; import jakarta.transaction.Transactional;
...@@ -45,4 +45,11 @@ public class MusicService { ...@@ -45,4 +45,11 @@ public class MusicService {
FavoriteMusic music = albumsRepo.save(favorite.toEntity()); FavoriteMusic music = albumsRepo.save(favorite.toEntity());
return music != null ? 1 : 0; return music != null ? 1 : 0;
} }
public void deleteFavorite(String id) {
if (!albumsRepo.existsById(id)) {
throw new IllegalArgumentException("해당 ID는 존재하지 않습니다: " + id);
}
albumsRepo.deleteById(id);
}
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment