Skip to content
Snippets Groups Projects
Commit 95b8c403 authored by dudgns2947's avatar dudgns2947
Browse files

post_likes

parent b51db9e9
Branches
No related tags found
1 merge request!4post_likes
{
"wrapperType":"collection",
"collectionType":"Album",
"artistId":994656,
"collectionId":580708175,
"amgArtistId":4739,
"artistName":"Led Zeppelin",
"collectionName":"Led Zeppelin IV (Remastered)",
"collectionCensoredName":"Led Zeppelin IV (Remastered)",
"artistViewUrl":"https://music.apple.com/us/artist/led-zeppelin/994656?uo=4",
"collectionViewUrl":"https://music.apple.com/us/album/led-zeppelin-iv-remastered/580708175?uo=4",
"artworkUrl60":"https://is1-ssl.mzstatic.com/image/thumb/Music115/v4/5c/15/9b/5c159b27-95ca-b9a7-84e3-28e795fffd39/dj.kvkrpptq.jpg/60x60bb.jpg",
"artworkUrl100":"https://is1-ssl.mzstatic.com/image/thumb/Music115/v4/5c/15/9b/5c159b27-95ca-b9a7-84e3-28e795fffd39/dj.kvkrpptq.jpg/100x100bb.jpg",
"collectionPrice":9.99,
"collectionExplicitness":"notExplicit",
"trackCount":8,
"copyright":"℗ 1971 Atlantic Recording Corporation, a Warner Music Group Company. Marketed by Rhino Entertainment Company, a Warner Music Group Company.",
"country":"USA",
"currency":"USD",
"releaseDate":"1971-11-08T08:00:00Z",
"primaryGenreName":"Rock"
}
\ No newline at end of file
package com.ajou.prcoding.myweb.Controller; package com.ajou.prcoding.myweb.Controller;
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.entity.FavoriteMusic;
import com.ajou.prcoding.myweb.repository.FavoriteRepository; import com.ajou.prcoding.myweb.repository.FavoriteRepository;
import org.codehaus.jackson.map.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
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.*;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import javax.transaction.Transactional;
import java.io.IOException; import java.io.IOException;
import java.net.URI;
import java.util.List; import java.util.List;
import com.ajou.prcoding.myweb.dto.MusicList;
@RestController @RestController
public class MyWebController { public class MyWebController {
@Autowired
FavoriteRepository albumsRepo;
//클래스 변수로 정의
RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = new RestTemplate();
MusicList list; MusicList list;
@GetMapping(value="/musicSearch/{term}") @GetMapping(value="/musicSearch/{term}")
...@@ -27,30 +29,76 @@ public class MyWebController { ...@@ -27,30 +29,76 @@ public class MyWebController {
try { try {
String url =String.format("https://itunes.apple.com/search?term=%s&entity=album",term); String url =String.format("https://itunes.apple.com/search?term=%s&entity=album",term);
String response = restTemplate.getForObject(url, String.class); String response = restTemplate.getForObject(url, String.class);
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
list = mapper.readValue(response, MusicList.class); list = mapper.readValue(response, MusicList.class);
System.out.println(list.getResultCount()); System.out.println(list.getResultCount());
return list; return list;
} catch(IOException e) { } catch(IOException e) {
System.out.println(e.toString()); System.out.println(e.toString());
} }
return list; return list;
} }
@GetMapping(value="/musicSearch") @GetMapping(value="/musicSearch")
public String musicSearchByParam(@RequestParam String term){ public MusicList musicSearchByParam(@RequestParam String term){
return "Hello Param!"; try {
String url =String.format("https://itunes.apple.com/search?term=%s&entity=album",term);
String response = restTemplate.getForObject(url, String.class);
ObjectMapper mapper = new ObjectMapper();
list = mapper.readValue(response, MusicList.class);
System.out.println(list.getResultCount());
return list;
} catch(IOException e) {
System.out.println(e.toString());
}
return list;
} }
//Get Favorite Music list from Database
@GetMapping(value="/likes") @GetMapping(value="/likes")
@Autowired
public List<FavoriteMusic> getLikes() { public List<FavoriteMusic> getLikes() {
FavoriteRepository albumRepo = null;
try { try {
return albumRepo.findAll();
return albumsRepo.findAll();
} catch (Exception e) { } catch (Exception e) {
System.out.println(e.toString()); System.out.println(e.toString());
return null; 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;
}
}
} }
...@@ -2,9 +2,10 @@ package com.ajou.prcoding.myweb; ...@@ -2,9 +2,10 @@ package com.ajou.prcoding.myweb;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication @SpringBootApplication
public class MyWebApplication { public class MyWebApplication extends SpringBootServletInitializer {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(MyWebApplication.class, args); SpringApplication.run(MyWebApplication.class, args);
......
package com.ajou.prcoding.myweb.dto;
import com.ajou.prcoding.myweb.entity.FavoriteMusic;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import javax.persistence.Column;
@Getter
@Setter
@ToString
public class FavoriteMusicRequestDto {
private String collectionId;
private String collectionType;
private String artistId;
private String artistName;
private String artistViewUrl;
private String collectionName;
private String collectionViewUrl;
public FavoriteMusic toEntity(){
FavoriteMusic music = new FavoriteMusic();
music.setCollectionId(this.collectionId);
music.setCollectionType(this.collectionType);
music.setArtistId(this.artistId);
music.setArtistViewUrl(this.artistViewUrl);
music.setArtistName(this.artistName);
music.setCollectionName(this.collectionName);
music.setCollectionViewUrl(this.collectionViewUrl);
return music;
}
}
\ No newline at end of file
...@@ -4,8 +4,7 @@ import lombok.Getter; ...@@ -4,8 +4,7 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import java.util.List; import java.util.*;
import java.util.Map;
@Getter @Getter
@Setter @Setter
......
...@@ -4,18 +4,16 @@ import lombok.Getter; ...@@ -4,18 +4,16 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import javax.persistence.Column; import javax.persistence.*;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity @Entity
@Table(schema = "favoritMusic") @Table(name="favoriteMusic")
@Getter @Getter
@Setter @Setter
@ToString @ToString
public class FavoriteMusic { public class FavoriteMusic {
@Id @Column(length = 32) private String collectionId; @Id @Column(name="collection_id", length=32)
private String collectionId;
@Column private String collectionType; @Column private String collectionType;
@Column private String artistId; @Column private String artistId;
@Column private String artistName; @Column private String artistName;
......
...@@ -6,5 +6,5 @@ spring.datasource.password=0815 ...@@ -6,5 +6,5 @@ spring.datasource.password=0815
spring.jpa.properties.hibernate.show_sql=true spring.jpa.properties.hibernate.show_sql=true
spring.jpa.properties.hibernate.format_sql=true spring.jpa.properties.hibernate.format_sql=true
logging.level.org.hibernate.type.descriptor.sql=trace logging.level.org.hibernate.type.descriptor.sql=trace
spring.jpa.hibernate.ddl-auto=create spring.jpa.hibernate.ddl-auto=update
spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment