Skip to content
Snippets Groups Projects
Commit 265b9327 authored by 이명건's avatar 이명건
Browse files

Add delete Favorite

parent 73fa8eb1
No related branches found
No related tags found
No related merge requests found
Pipeline #8376 failed
package kr.ajousw.myspringweb.controller;
import java.io.IOException;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
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.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
......@@ -13,8 +13,6 @@ 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 kr.ajousw.myspringweb.dto.FavoriteMusicRequestDto;
import kr.ajousw.myspringweb.dto.MusicList;
import kr.ajousw.myspringweb.entity.FavoriteMusic;
......@@ -30,7 +28,6 @@ public class MyWebcontroller {
@Autowired
MusicService service;
@GetMapping(value = "/musicSearch/{name}")
public MusicList musicSearchByPath(@PathVariable String name) {
return service.searchMusic(name);
......@@ -41,55 +38,20 @@ public class MyWebcontroller {
return service.searchMusic(name);
}
// @GetMapping(value = "/musicSearch/{term}")
// public MusicList musicSearchByPath(@PathVariable String term) {
// try {
// String url = "https://itunes.apple.com/search?term="+ term +"&entity=album";
// String response = restTemplate.getForObject(url, 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 String term) {
// try {
// String url = "https://itunes.apple.com/search?term="+ term +"&entity=album";
// String response = restTemplate.getForObject(url, 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="/likes") //Get Favorite Music list from Database
public List<FavoriteMusic> getLikes() {
return service.getLikes();
}
// @GetMapping(value = "/likes")
// public List<FavoriteMusic> getLikes() {
// try {
// return albumsRepo.findAll();
// } catch (Exception e) {
// System.out.println(e.toString());
// return null;
// }
// }
@PostMapping(value="/likes")
public int postLikes(@RequestBody FavoriteMusicRequestDto favorite) {
return service.saveFavorite(favorite);
}
// @PostMapping(value = "/likes")
// @Transactional
// public int postLikes(@RequestBody FavoriteMusicRequestDto favorite) {
// FavoriteMusic music = albumsRepo.save(favorite.toEntity());
// if(music != null) {
// return 1;
// } else {
// return 0;
// }
// }
@DeleteMapping(value = "/likes/{id}")
public String deleteFavorite(@PathVariable String id) {
service.deleteFavorite(id);
return (id + " was deleted.");
}
}
package kr.ajousw.myspringweb.dto;
import jakarta.persistence.Column;
import kr.ajousw.myspringweb.entity.FavoriteMusic;
import lombok.Getter;
import lombok.Setter;
......
......@@ -7,4 +7,6 @@ import kr.ajousw.myspringweb.entity.FavoriteMusic;
public interface FavoriteRepository extends JpaRepository<FavoriteMusic, String> {
List<FavoriteMusic> findAll();
void deleteById(String id);
}
......@@ -2,11 +2,10 @@ package kr.ajousw.myspringweb.service;
import java.io.IOException;
import java.util.List;
import java.util.Optional;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.client.RestTemplate;
import com.fasterxml.jackson.databind.ObjectMapper;
......@@ -38,21 +37,6 @@ public class MusicService {
}
// public MusicList musicSearchByParam(@RequestParam(value = "term") String name) {
// try {
// String url = "https://itunes.apple.com/search?term="+ name +"&entity=album";
// String response = restTemplate.getForObject(url, 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 List<FavoriteMusic> getLikes() {
try {
return albumsRepo.findAll();
......@@ -61,6 +45,7 @@ public class MusicService {
return null;
}
}
public int saveFavorite(FavoriteMusicRequestDto favorite) {
FavoriteMusic music = albumsRepo.save(favorite.toEntity());
if(music != null) {
......@@ -71,4 +56,16 @@ public class MusicService {
}
public void deleteFavorite(String id) {
try {
Optional<FavoriteMusic> favoriteMusicOptional = albumsRepo.findById(id);
if (favoriteMusicOptional.isPresent()) {
albumsRepo.deleteById(id);
} else {
throw new IllegalArgumentException("Invalid id: " + id);
}
} catch (Exception e) {
System.out.println(e.toString());
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment