Select Git revision
MyWebController.java
-
Yunji Choi authoredYunji Choi authored
MyWebController.java 3.00 KiB
package com.ajou.prcoding.myweb.controller;
import java.io.IOException;
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.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;
@RestController
public class MyWebController {
@Autowired
FavoriteRepository albumsRepo;
// PathVariable 방식 => localhost/musicSearch/aespa 로 접속
@GetMapping(value = "/musicSearch/{term}")
public MusicList musicSearchByPath(@PathVariable String term) {
RestTemplate restTemplate = new RestTemplate();
try {
String response = restTemplate.getForObject("https://itunes.apple.com/search?term={term}&entity=album",
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;
}
}
// Query Param 방식 => localhost/musicSearch?term=aespa 로 접속
@GetMapping(value = "/musicSearch")
public MusicList musicSearchByParam(@RequestParam String term) {
RestTemplate restTemplate = new RestTemplate();
try {
String response = restTemplate.getForObject("https://itunes.apple.com/search?term={term}&entity=album",
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;
}
}
// Get Favorite Music list from Database
@GetMapping(value = "/likes")
public List<FavoriteMusic> getLikes() {
try {
return albumsRepo.findAll();
} catch (Exception e) {
System.out.println(e.toString());
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;
}
}
}