From 4458545d9ead92f79a4c1d1321c830cbbeaa964e Mon Sep 17 00:00:00 2001 From: Joshua Sigona Date: Fri, 24 Jul 2020 02:50:46 +0900 Subject: [PATCH] Implement rest template api request to imdb database --- .../java/com/example/demo/Controller.java | 17 ++++- .../java/com/example/demo/DataRepository.java | 2 +- src/main/java/com/example/demo/Movie.java | 63 +++++++++++++++++++ .../java/com/example/demo/MovieRequest.java | 23 +++++++ 4 files changed, 101 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/example/demo/Movie.java create mode 100644 src/main/java/com/example/demo/MovieRequest.java diff --git a/src/main/java/com/example/demo/Controller.java b/src/main/java/com/example/demo/Controller.java index e42d5df..90b9437 100644 --- a/src/main/java/com/example/demo/Controller.java +++ b/src/main/java/com/example/demo/Controller.java @@ -1,6 +1,7 @@ package com.example.demo; import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.stereotype.Service; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PatchMapping; @@ -10,6 +11,7 @@ import org.springframework.web.bind.annotation.PutMapping; 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.fasterxml.jackson.annotation.JsonFormat; @@ -31,15 +33,24 @@ import java.util.Optional; import javax.imageio.ImageIO; import javax.websocket.server.PathParam; +@Service @RestController public class Controller { DataRepository database; + RestTemplate connection = new RestTemplate(); public Controller(DataRepository database) { this.database=database; } + @GetMapping("/movies") + public List _8(@RequestParam("q") String q) { + System.out.println(connection.getForObject("http://www.omdbapi.com/?apikey={key}&s={title}", String.class, "6ba5969a",q)); + MovieRequest mr = connection.getForObject("http://www.omdbapi.com/?apikey={key}&s={title}", MovieRequest.class, "6ba5969a",q); + return mr.movies; + } + @GetMapping("") public Iterable _1(){ return database.findAll(); @@ -49,8 +60,8 @@ public class Controller { return database.save(data); } @GetMapping("/data/{id}") - public Optional _3(@PathVariable Long id) { - return database.findById(id); + public Data _3(@PathVariable Long id) { + return database.findById(id).orElse(new Data()); } @PutMapping("/data/{id}") public Object _5(@PathVariable Long id,@RequestBody Data data) { @@ -75,7 +86,7 @@ public class Controller { @GetMapping("/lessons/between") public List _8(@DateTimeFormat(pattern = "MM-dd-yyyy")@RequestParam("date1") Date date1, @DateTimeFormat(pattern = "MM-dd-yyyy")@RequestParam("date2") Date date2) { - return database.findBysubmittedOnBetween(date1, date2); + return database.submittedOnBetween(date1, date2); } @DeleteMapping("/data/{id}") public String _4(@PathVariable Long id) { diff --git a/src/main/java/com/example/demo/DataRepository.java b/src/main/java/com/example/demo/DataRepository.java index e4e3999..b77f5de 100644 --- a/src/main/java/com/example/demo/DataRepository.java +++ b/src/main/java/com/example/demo/DataRepository.java @@ -7,5 +7,5 @@ import org.springframework.data.repository.CrudRepository; public interface DataRepository extends CrudRepository{ Data findByName(String name); - List findBysubmittedOnBetween(Date date1,Date date2); + List submittedOnBetween(Date date1,Date date2); } diff --git a/src/main/java/com/example/demo/Movie.java b/src/main/java/com/example/demo/Movie.java new file mode 100644 index 0000000..46a3a81 --- /dev/null +++ b/src/main/java/com/example/demo/Movie.java @@ -0,0 +1,63 @@ +package com.example.demo; + +import org.springframework.web.bind.annotation.RequestMapping; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +@RequestMapping +@JsonInclude(JsonInclude.Include.NON_NULL) +public class Movie { + String title; + String imdbId; + String poster; + int year; + + @JsonCreator + Movie( + @JsonProperty("Title") String title, + @JsonProperty("imdbID") String imdbId, + @JsonProperty("Poster") String poster, + @JsonProperty("Year") int year) { + this.title=title; + this.imdbId=imdbId; + this.poster=poster; + this.year=year; + } + + @JsonProperty("title") + public String getTitle() { + return title; + } + @JsonProperty("title") + public void setTitle(String title) { + this.title = title; + } + @JsonProperty("imdbId") + public String getImdbId() { + return imdbId; + } + @JsonProperty("imdbId") + public void setImdbId(String imdbId) { + this.imdbId = imdbId; + } + @JsonProperty("poster") + public String getPoster() { + return poster; + } + @JsonProperty("poster") + public void setPoster(String poster) { + this.poster = poster; + } + @JsonProperty("year") + public int getYear() { + return year; + } + @JsonProperty("year") + public void setYear(int year) { + this.year = year; + } + + +} diff --git a/src/main/java/com/example/demo/MovieRequest.java b/src/main/java/com/example/demo/MovieRequest.java new file mode 100644 index 0000000..f7732ad --- /dev/null +++ b/src/main/java/com/example/demo/MovieRequest.java @@ -0,0 +1,23 @@ +package com.example.demo; + +import java.util.List; + +import org.springframework.web.bind.annotation.RequestMapping; + +import com.fasterxml.jackson.annotation.JsonProperty; + +@RequestMapping +public class MovieRequest { + List movies; + + @JsonProperty("Search") + public List getMovies() { + return movies; + } + + @JsonProperty("Search") + public void setMovies(List movies) { + this.movies = movies; + } + +}