From 3078d12005e5bd40877416c2a97c2a6214d9221a Mon Sep 17 00:00:00 2001 From: Stuart Boston Date: Mon, 16 Feb 2015 18:19:08 +0000 Subject: [PATCH] Add Reviews --- .../omertron/themoviedbapi/TheMovieDbApi.java | 20 ++++++--- .../themoviedbapi/methods/TmdbMovies.java | 22 ---------- .../themoviedbapi/methods/TmdbReviews.java | 44 +++++++++++++++++++ 3 files changed, 59 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/omertron/themoviedbapi/TheMovieDbApi.java b/src/main/java/com/omertron/themoviedbapi/TheMovieDbApi.java index 491944c49..0b4cae287 100644 --- a/src/main/java/com/omertron/themoviedbapi/TheMovieDbApi.java +++ b/src/main/java/com/omertron/themoviedbapi/TheMovieDbApi.java @@ -1249,10 +1249,6 @@ public class TheMovieDbApi { return tmdbMovies.getSimilarMovies(movieId, language, page, appendToResponse); } - public TmdbResultsList getReviews(int movieId, String language, int page, String... appendToResponse) throws MovieDbException { - return tmdbMovies.getReviews(movieId, language, page, appendToResponse); - } - /** * Get the lists that the movie belongs to * @@ -1447,11 +1443,25 @@ public class TheMovieDbApi { return tmdbPeople.getPersonLatest(); } // - + // + /** + * + * @param movieId + * @param language + * @param page + * @param appendToResponse + * @return + * @throws MovieDbException + */ + public TmdbResultsList getReviews(int movieId, String language, int page, String... appendToResponse) throws MovieDbException { + return tmdbReviews.getReviews(movieId, language, page, appendToResponse); + } // + // // + // // } diff --git a/src/main/java/com/omertron/themoviedbapi/methods/TmdbMovies.java b/src/main/java/com/omertron/themoviedbapi/methods/TmdbMovies.java index ee6e1d8f9..e0e73ca95 100644 --- a/src/main/java/com/omertron/themoviedbapi/methods/TmdbMovies.java +++ b/src/main/java/com/omertron/themoviedbapi/methods/TmdbMovies.java @@ -27,7 +27,6 @@ import com.omertron.themoviedbapi.model.MovieDb; import com.omertron.themoviedbapi.model.MovieList; import com.omertron.themoviedbapi.model.Person; import com.omertron.themoviedbapi.model.ReleaseInfo; -import com.omertron.themoviedbapi.model.Reviews; import com.omertron.themoviedbapi.model.StatusCode; import com.omertron.themoviedbapi.model.Translation; import com.omertron.themoviedbapi.model.Video; @@ -47,7 +46,6 @@ import com.omertron.themoviedbapi.wrapper.WrapperMovieCasts; import com.omertron.themoviedbapi.wrapper.WrapperMovieKeywords; import com.omertron.themoviedbapi.wrapper.WrapperMovieList; import com.omertron.themoviedbapi.wrapper.WrapperReleaseInfo; -import com.omertron.themoviedbapi.wrapper.WrapperReviews; import com.omertron.themoviedbapi.wrapper.WrapperTranslations; import com.omertron.themoviedbapi.wrapper.WrapperVideos; import java.io.IOException; @@ -368,26 +366,6 @@ public class TmdbMovies extends AbstractMethod { } } - public TmdbResultsList getReviews(int movieId, String language, int page, String... appendToResponse) throws MovieDbException { - TmdbParameters parameters = new TmdbParameters(); - parameters.add(Param.ID, movieId); - parameters.add(Param.LANGUAGE, language); - parameters.add(Param.PAGE, page); - parameters.add(Param.APPEND, appendToResponse); - - URL url = new ApiUrl(apiKey, MethodBase.MOVIE).setSubMethod(MethodSub.REVIEWS).buildUrl(parameters); - String webpage = httpTools.getRequest(url); - - try { - WrapperReviews wrapper = MAPPER.readValue(webpage, WrapperReviews.class); - TmdbResultsList results = new TmdbResultsList(wrapper.getReviews()); - results.copyWrapper(wrapper); - return results; - } catch (IOException ex) { - throw new MovieDbException(ApiExceptionType.MAPPING_FAILED, "Failed to get reviews", url, ex); - } - } - /** * Get the lists that the movie belongs to * diff --git a/src/main/java/com/omertron/themoviedbapi/methods/TmdbReviews.java b/src/main/java/com/omertron/themoviedbapi/methods/TmdbReviews.java index a6c3e16bd..be418d3d4 100644 --- a/src/main/java/com/omertron/themoviedbapi/methods/TmdbReviews.java +++ b/src/main/java/com/omertron/themoviedbapi/methods/TmdbReviews.java @@ -19,7 +19,20 @@ */ package com.omertron.themoviedbapi.methods; +import com.omertron.themoviedbapi.MovieDbException; +import static com.omertron.themoviedbapi.methods.AbstractMethod.MAPPER; +import com.omertron.themoviedbapi.model.Reviews; +import com.omertron.themoviedbapi.results.TmdbResultsList; +import com.omertron.themoviedbapi.tools.ApiUrl; import com.omertron.themoviedbapi.tools.HttpTools; +import com.omertron.themoviedbapi.tools.MethodBase; +import com.omertron.themoviedbapi.tools.MethodSub; +import com.omertron.themoviedbapi.tools.Param; +import com.omertron.themoviedbapi.tools.TmdbParameters; +import com.omertron.themoviedbapi.wrapper.WrapperReviews; +import java.io.IOException; +import java.net.URL; +import org.yamj.api.common.exception.ApiExceptionType; /** * Class to hold the Review Methods @@ -37,4 +50,35 @@ public class TmdbReviews extends AbstractMethod { public TmdbReviews(String apiKey, HttpTools httpTools) { super(apiKey, httpTools); } + + /** + * Get the full details of a review by ID. + * + * @param id + * @param language + * @param page + * @param appendToResponse + * @return + * @throws MovieDbException + */ + public TmdbResultsList getReviews(int id, String language, int page, String... appendToResponse) throws MovieDbException { + TmdbParameters parameters = new TmdbParameters(); + parameters.add(Param.ID, id); + parameters.add(Param.LANGUAGE, language); + parameters.add(Param.PAGE, page); + parameters.add(Param.APPEND, appendToResponse); + + URL url = new ApiUrl(apiKey, MethodBase.MOVIE).setSubMethod(MethodSub.REVIEWS).buildUrl(parameters); + String webpage = httpTools.getRequest(url); + + try { + WrapperReviews wrapper = MAPPER.readValue(webpage, WrapperReviews.class); + TmdbResultsList results = new TmdbResultsList(wrapper.getReviews()); + results.copyWrapper(wrapper); + return results; + } catch (IOException ex) { + throw new MovieDbException(ApiExceptionType.MAPPING_FAILED, "Failed to get reviews", url, ex); + } + } + }