Skip to content
Snippets Groups Projects
Commit d67fc0b3 authored by SangJun Park's avatar SangJun Park
Browse files

code refactoring with service

parent 68b5e931
Branches
No related tags found
No related merge requests found
Pipeline #8313 canceled
...@@ -19,6 +19,7 @@ import kr.ajousw.myspringweb.dto.FavoriteMusicRequestDto; ...@@ -19,6 +19,7 @@ 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.repository.FavoriteRepository;
import kr.ajousw.myspringweb.service.MusicService;
@RestController @RestController
public class MyWebController { public class MyWebController {
...@@ -29,60 +30,83 @@ public class MyWebController { ...@@ -29,60 +30,83 @@ public class MyWebController {
@Autowired @Autowired
MusicService service; MusicService service;
@GetMapping(value = "/musicSearch/{term}")
public MusicList musicSearchByPath(@PathVariable String term) { @GetMapping(value = "/musicSearch/{name}")
try { public MusicList musicSearchByPath(@PathVariable String name){
RestTemplate restTemplate = new RestTemplate(); return service.searchMusic(name);
String url = "https://itunes.apple.com/search?term=" + term + "&entity=album";
String response = restTemplate.getForObject(url, String.class); // String class로 변환
ObjectMapper mapper = new ObjectMapper();
MusicList list = mapper.readValue(response, MusicList.class); // MusicList 방식으로 변환
System.out.println(list.getResultCount());
return list; // MusicList를 반환
} catch (IOException e) {
System.out.println(e.toString());
return null;
}
} }
@GetMapping(value="/musicSearch") @GetMapping(value="/musicSearch")
public MusicList musicSearchByParam(@RequestParam String term) { public MusicList musicSearchByParam(@RequestParam(value="term") String name) {
try { return service.searchMusic(name);
RestTemplate restTemplate = new RestTemplate();
String url = "https://itunes.apple.com/search?term=" + term + "&entity=album";
String response = restTemplate.getForObject(url, String.class); // String class로 변환
ObjectMapper mapper = new ObjectMapper();
MusicList list = mapper.readValue(response, MusicList.class); // MusicList 방식으로 변환
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") //Get Favorite Music list from Database
@GetMapping(value = "/likes")
public List<FavoriteMusic> getLikes() { public List<FavoriteMusic> getLikes() {
return service.getLikes();
try {
return albumsRepo.findAll();
} catch (Exception e) {
System.out.println(e.toString());
return null;
}
} }
@PostMapping(value="/likes") @PostMapping(value="/likes")
@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;
}
} }
// @GetMapping(value = "/musicSearch/{term}")
// public MusicList musicSearchByPath(@PathVariable String term) {
// try {
// RestTemplate restTemplate = new RestTemplate();
// String url = "https://itunes.apple.com/search?term=" + term + "&entity=album";
// String response = restTemplate.getForObject(url, String.class); // String class로 변환
// ObjectMapper mapper = new ObjectMapper();
// MusicList list = mapper.readValue(response, MusicList.class); // MusicList 방식으로 변환
// System.out.println(list.getResultCount());
// return list; // MusicList를 반환
// } catch (IOException e) {
// System.out.println(e.toString());
// return null;
// }
// }
// @GetMapping(value = "/musicSearch")
// public MusicList musicSearchByParam(@RequestParam String term) {
// try {
// RestTemplate restTemplate = new RestTemplate();
// String url = "https://itunes.apple.com/search?term=" + term + "&entity=album";
// String response = restTemplate.getForObject(url, String.class); // String class로 변환
// ObjectMapper mapper = new ObjectMapper();
// MusicList list = mapper.readValue(response, MusicList.class); // MusicList 방식으로 변환
// 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;
// }
// }
} }
...@@ -9,6 +9,7 @@ import lombok.ToString; ...@@ -9,6 +9,7 @@ import lombok.ToString;
@Setter @Setter
@ToString @ToString
public class FavoriteMusicRequestDto { public class FavoriteMusicRequestDto {
// json 데이터를 Spring 객체로 변경하는 과정
private String collectionId; private String collectionId;
private String collectionType; private String collectionType;
private String artistId; private String artistId;
......
package kr.ajousw.myspringweb.service; package kr.ajousw.myspringweb.service;
import java.io.IOException;
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.fasterxml.jackson.databind.ObjectMapper;
import jakarta.transaction.Transactional; 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 kr.ajousw.myspringweb.repository.FavoriteRepository;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@Service @Service
@Transactional @Transactional // 데이터베이스의 원리 중 하나로 실행되다가 오류가 발생하면은, 다시 실행 이전의 상태로 돌아가는 것
@RequiredArgsConstructor @RequiredArgsConstructor
public class MusicService { public class MusicService {
private final FavoriteRepository albumsRepo; private final FavoriteRepository albumsRepo;
RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = new RestTemplate();
public MusicList searchMusic(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;
}
}
public List<FavoriteMusic> getLikes() {
try {
return albumsRepo.findAll();
} catch (Exception e) {
System.out.println(e.toString());
return null;
}
}
@Transactional
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