diff --git a/src/main/java/movie/apis/Main.java b/src/main/java/movie/apis/Main.java index f0e713d..5c79d48 100644 --- a/src/main/java/movie/apis/Main.java +++ b/src/main/java/movie/apis/Main.java @@ -22,7 +22,9 @@ public class Main { case 2: // TODO: Get genre ID and page from user, then call movieService.displayMoviesByGenre() - + Long genreID = getLongInput("Enter genre ID: "); + Long pageNumber = getLongInput("Enter page number: "); + movieService.displayMoviesByGenre(genreID, pageNumber); break; diff --git a/src/main/java/movie/apis/Movie.java b/src/main/java/movie/apis/Movie.java index 969774a..77db944 100644 --- a/src/main/java/movie/apis/Movie.java +++ b/src/main/java/movie/apis/Movie.java @@ -17,8 +17,64 @@ public class Movie { private String country; // TODO: Create a constructor with all fields - + public Movie(Long id, String title, List genres, List images, String year, String imdb_rating, String country){ + this.id = id; + this.title = title; + this.genres = genres; + this.images = images; + this.year = year; + this.imdb_rating = imdb_rating; + this.country = country; + } // TODO: Create a simple constructor with id and title only - + public Movie(Long id, String title){ + this.id = id; + this.title = title; + } // TODO: Create getters and setters for all fields + // Getters + public Long getId() { + return id; + } + public String getTitle() { + return title; + } + public List getGenres() { + return genres; + } + public List getImages() { + return images; + } + public String getYear() { + return year; + } + public String getImdb_rating() { + return imdb_rating; + } + public String getCountry() { + return country; + } + + // Setters + public void setId(Long id) { + this.id = id; + } + public void setTitle(String title) { + this.title = title; + } + public void setGenres(List genres) { + this.genres = genres; + } + public void setImages(List images) { + this.images = images; + } + public void setYear(String year) { + this.year = year; + } + public void setImdb_rating(String imdb_rating) { + this.imdb_rating = imdb_rating; + } + public void setCountry(String country) { + this.country = country; + } } \ No newline at end of file diff --git a/src/main/java/movie/apis/MovieService.java b/src/main/java/movie/apis/MovieService.java index 3f053f5..e93cf7a 100644 --- a/src/main/java/movie/apis/MovieService.java +++ b/src/main/java/movie/apis/MovieService.java @@ -106,7 +106,21 @@ public class MovieService { // TODO: Write your code here // All parsing code must be inside try-catch try { - // Your code here + JsonObject moviesObject = JsonParser.parseString(getMoviesByGenreList(genreId, page)).getAsJsonObject();JsonArray moviesArray = moviesObject.getAsJsonArray("movies"); + + for (JsonElement element : moviesArray) { + JsonObject movieObj = element.getAsJsonObject(); + long id = movieObj.get("id").getAsLong(); + String title = movieObj.get("title").getAsString(); + String year = movieObj.get("year").getAsString(); + System.out.println("ID: " + id + " | " + title + " | year: " + year); + } + + // Print total and total_pages + long total = moviesObject.get("total").getAsLong(); + long totalPages = moviesObject.get("total_pages").getAsLong(); + + System.out.println("Total: " + total + "| Total Pages: " + totalPages); } catch (Exception e) { System.err.println("ERROR: " + e.getMessage()); @@ -125,8 +139,10 @@ public class MovieService { // HttpRequest request = HttpRequest.newBuilder().uri(URI.create(url)).build(); // HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString()); // if (response.statusCode() == 200) return response.body(); - - return null; + String url = MOVIE_BY_ID_URL + movieId; + HttpRequest request = HttpRequest.newBuilder().uri(URI.create(url)).build(); + HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString()); + if (response.statusCode() == 200) return response.body(); } catch (Exception e) { System.out.println("!!Exception : " + e.getMessage()); }