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.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.PostMapping;
......@@ -6,11 +6,11 @@ import org.springframework.web.bind.annotation.RequestBody;
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.ajou.procoding.myweb.service.MusicService;
import com.ajou.prcoding.myweb.dto.FavoriteMusicRequestDto;
import com.ajou.prcoding.myweb.dto.MusicList;
import com.ajou.prcoding.myweb.entity.FavoriteMusic;
import com.ajou.prcoding.myweb.repository.FavoriteRepository;
import com.ajou.prcoding.myweb.service.MusicService;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.transaction.Transactional;
......@@ -19,13 +19,14 @@ import java.io.IOException;
import java.util.List;
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.RequestParam;
@RestController
public class MyWebController {
@Autowired
MusicService service;
......@@ -39,16 +40,26 @@ public class MyWebController {
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() {
return service.getLikes();
}
@PostMapping(value="/likes")
@PostMapping(value = "/likes")
public int postLikes(@RequestBody FavoriteMusicRequestDto 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 lombok.Getter;
......
package com.ajou.procoding.myweb.dto;
package com.ajou.prcoding.myweb.dto;
import java.util.List;
......
package com.ajou.procoding.myweb.dto;
package com.ajou.prcoding.myweb.dto;
public @interface Tostring {
......
package com.ajou.procoding.myweb.entity;
package com.ajou.prcoding.myweb.entity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
......
package com.ajou.procoding.myweb.repository;
package com.ajou.prcoding.myweb.repository;
import java.util.List;
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
JpaRepository<FavoriteMusic, String> {
public interface FavoriteRepository extends JpaRepository<FavoriteMusic, String> {
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.util.List;
......@@ -6,10 +6,10 @@ import java.util.List;
import org.springframework.stereotype.Service;
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.ajou.prcoding.myweb.dto.FavoriteMusicRequestDto;
import com.ajou.prcoding.myweb.dto.MusicList;
import com.ajou.prcoding.myweb.entity.FavoriteMusic;
import com.ajou.prcoding.myweb.repository.FavoriteRepository;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.transaction.Transactional;
......@@ -45,4 +45,11 @@ public class MusicService {
FavoriteMusic music = albumsRepo.save(favorite.toEntity());
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