Skip to content
Snippets Groups Projects
Commit 344b763b authored by 찬주 이's avatar 찬주 이
Browse files

code refactoring with

parent d68cceda
No related branches found
No related tags found
No related merge requests found
Pipeline #8317 canceled
package kr.ajousw.myspringweb.controller; package kr.ajousw.myspringweb.controller;
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.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.transaction.Transactional; import jakarta.transaction.Transactional;
import kr.ajousw.myspringweb.dto.FavoriteMusicRequestDto; import kr.ajousw.myspringweb.dto.FavoriteMusicRequestDto;
import kr.ajousw.myspringweb.dto.MusicList; import kr.ajousw.myspringweb.dto.MusicList;
import kr.ajousw.myspringweb.entity.FavoriteMusic; import kr.ajousw.myspringweb.entity.FavoriteMusic;
import kr.ajousw.myspringweb.repository.FavoriteRepository; import kr.ajousw.myspringweb.service.MusicService;
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;
...@@ -26,65 +22,32 @@ import org.springframework.web.bind.annotation.RequestParam; ...@@ -26,65 +22,32 @@ import org.springframework.web.bind.annotation.RequestParam;
@RestController @RestController
public class MyspringwebController { public class MyspringwebController {
@Autowired @Autowired
FavoriteRepository albumsRepo; MusicService service;
@RequestMapping("/") @RequestMapping("/")
public String index() { public String index() {
return "Greetings from Spring Boot!"; return "Greetings from Spring Boot!";
} }
@GetMapping(value="/musicSearch/{term}") @GetMapping(value="/musicSearch/{name}")
public MusicList musicSearchByPath(@PathVariable String term){ public MusicList musicSearchByPath(@PathVariable String name){
String url = "https://itunes.apple.com/search?term=" + term + "&entity=album"; return service.searchMusic(name);
RestTemplate restTemplate = new RestTemplate();
try {
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") @GetMapping(value="/musicSearch")
public MusicList musicSearchByParam(@RequestParam(value="term") String name){ public MusicList musicSearchByParam(@RequestParam(value="term") String name){
String url = "https://itunes.apple.com/search?term=" + name + "&entity=album"; return service.searchMusic(name);
RestTemplate restTemplate = new RestTemplate();
try {
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") @GetMapping(value="/likes")
public List<FavoriteMusic> getLikes(){ public List<FavoriteMusic> getLikes(){
try { return service.getLikes();
return albumsRepo.findAll();
} catch (Exception e) {
System.out.println(e.toString());
return null;
}
} }
@PostMapping(value="/likes") @PostMapping(value="/likes")
@Transactional @Transactional
public int postLikes(@RequestBody FavoriteMusicRequestDto favorite){ public int postLikes(@RequestBody FavoriteMusicRequestDto favorite){
FavoriteMusic music = albumsRepo.save(favorite.toEntity()); return service.saveFavorite(favorite);
if(music != null) {
return 1;
}
else {
return 0;
}
} }
} }
...@@ -3,7 +3,6 @@ package kr.ajousw.myspringweb.dto; ...@@ -3,7 +3,6 @@ package kr.ajousw.myspringweb.dto;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import kr.ajousw.myspringweb.entity.FavoriteMusic;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
......
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.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();
public MusicList searchMusic(String name){
String url = "https://itunes.apple.com/search?term=" + name + "&entity=album";
RestTemplate restTemplate = new RestTemplate();
try {
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();
} 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;
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment