Comple not bonus methods
This commit is contained in:
@@ -22,7 +22,9 @@ public class Main {
|
|||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
// TODO: Get genre ID and page from user, then call movieService.displayMoviesByGenre()
|
// TODO: Get genre ID and page from user, then call movieService.displayMoviesByGenre()
|
||||||
|
Long genreId = getLongInput("Enter genre ID: ");
|
||||||
|
Long page = getLongInput("Enter page number: ");
|
||||||
|
movieService.displayMoviesByGenre(genreId, page);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -87,26 +87,27 @@ public class MovieService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* TODO 1: Display movies for a specific genre and page
|
|
||||||
*
|
|
||||||
* Open this link in your browser (and check Pretty-print checkbox) to view json format:
|
|
||||||
* https://api.meshcomp.ir/api/v1/genres/1/movies
|
|
||||||
*
|
|
||||||
* Steps:
|
|
||||||
* - Call getMoviesByGenreList(genreId, page) to get JSON
|
|
||||||
* - Parse JSON to JsonObject
|
|
||||||
* - Get "movies" array (NOT "data")
|
|
||||||
* - Loop through array and print: "ID: {id} | {title} ({year})"
|
|
||||||
* - Also print total and total_pages
|
|
||||||
*
|
|
||||||
* PUT ALL PARSING CODE INSIDE try-catch
|
|
||||||
*/
|
|
||||||
public void displayMoviesByGenre(Long genreId, Long page) {
|
public void displayMoviesByGenre(Long genreId, Long page) {
|
||||||
// TODO: Write your code here
|
// TODO: Write your code here
|
||||||
// All parsing code must be inside try-catch
|
|
||||||
try {
|
try {
|
||||||
// Your code here
|
|
||||||
|
String jsonAsString = getMoviesByGenreList(genreId, page);
|
||||||
|
JsonObject jsonObj = JsonParser.parseString(jsonAsString).getAsJsonObject();
|
||||||
|
JsonArray moviesArray = jsonObj.getAsJsonArray("movies");
|
||||||
|
|
||||||
|
List<Movie> movies = new ArrayList<>();
|
||||||
|
|
||||||
|
for(JsonElement movie : moviesArray){
|
||||||
|
JsonObject movieAsObj = movie.getAsJsonObject();
|
||||||
|
System.out.printf("ID: %d | %s (%d)\n\n",
|
||||||
|
movieAsObj.get("id").getAsLong(), movieAsObj.get("title").getAsString(), movieAsObj.get("year").getAsLong());
|
||||||
|
|
||||||
|
movies.add(new Movie(movieAsObj.get("id").getAsLong(),
|
||||||
|
movieAsObj.get("title").getAsString()));
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.printf("Total: %d, total_pages: %d\n\n",
|
||||||
|
jsonObj.get("total").getAsLong(), jsonObj.get("total_pages").getAsLong());
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.err.println("ERROR: " + e.getMessage());
|
System.err.println("ERROR: " + e.getMessage());
|
||||||
@@ -121,10 +122,10 @@ public class MovieService {
|
|||||||
private String getMovieById(Long movieId) {
|
private String getMovieById(Long movieId) {
|
||||||
try {
|
try {
|
||||||
// TODO: Complete this method
|
// TODO: Complete this method
|
||||||
// String url = MOVIE_BY_ID_URL + movieId;
|
String url = MOVIE_BY_ID_URL + movieId;
|
||||||
// HttpRequest request = HttpRequest.newBuilder().uri(URI.create(url)).build();
|
HttpRequest request = HttpRequest.newBuilder().uri(URI.create(url)).build();
|
||||||
// HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
|
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
|
||||||
// if (response.statusCode() == 200) return response.body();
|
if (response.statusCode() == 200) return response.body();
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
Reference in New Issue
Block a user