diff --git a/src/main/java/com/omertron/themoviedbapi/methods/AbstractMethod.java b/src/main/java/com/omertron/themoviedbapi/methods/AbstractMethod.java index f610cd095..7f9d23896 100644 --- a/src/main/java/com/omertron/themoviedbapi/methods/AbstractMethod.java +++ b/src/main/java/com/omertron/themoviedbapi/methods/AbstractMethod.java @@ -22,6 +22,8 @@ package com.omertron.themoviedbapi.methods; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.omertron.themoviedbapi.MovieDbException; +import com.omertron.themoviedbapi.model.artwork.ArtworkMedia; +import com.omertron.themoviedbapi.model.change.ChangeListItem; import com.omertron.themoviedbapi.model.collection.Collection; import com.omertron.themoviedbapi.model.company.Company; import com.omertron.themoviedbapi.model.keyword.Keyword; @@ -77,6 +79,10 @@ public class AbstractMethod { }); TYPE_REFS.put(Review.class, new TypeReference>() { }); + TYPE_REFS.put(ChangeListItem.class, new TypeReference>() { + }); + TYPE_REFS.put(ArtworkMedia.class, new TypeReference>() { + }); } /** diff --git a/src/main/java/com/omertron/themoviedbapi/methods/TmdbAccount.java b/src/main/java/com/omertron/themoviedbapi/methods/TmdbAccount.java index d02f1fc98..113c6679a 100644 --- a/src/main/java/com/omertron/themoviedbapi/methods/TmdbAccount.java +++ b/src/main/java/com/omertron/themoviedbapi/methods/TmdbAccount.java @@ -301,7 +301,6 @@ public class TmdbAccount extends AbstractMethod { parameters.add(Param.ID, guestSessionId); parameters.add(Param.LANGUAGE, language); parameters.add(Param.PAGE, page); - //TODO: Test this works if (sortBy != null) { // Only created_at is supported parameters.add(Param.SORT_BY, "created_at"); diff --git a/src/main/java/com/omertron/themoviedbapi/methods/TmdbChanges.java b/src/main/java/com/omertron/themoviedbapi/methods/TmdbChanges.java index a389b764e..2a83580cf 100644 --- a/src/main/java/com/omertron/themoviedbapi/methods/TmdbChanges.java +++ b/src/main/java/com/omertron/themoviedbapi/methods/TmdbChanges.java @@ -19,7 +19,6 @@ */ package com.omertron.themoviedbapi.methods; -import com.fasterxml.jackson.core.type.TypeReference; import com.omertron.themoviedbapi.MovieDbException; import com.omertron.themoviedbapi.model.change.ChangeListItem; import com.omertron.themoviedbapi.tools.ApiUrl; @@ -28,7 +27,6 @@ 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.WrapperGenericList; import java.net.URL; import java.util.List; @@ -69,9 +67,7 @@ public class TmdbChanges extends AbstractMethod { params.add(Param.END_DATE, endDate); URL url = new ApiUrl(apiKey, method).subMethod(MethodSub.CHANGES).buildUrl(params); - TypeReference tr = new TypeReference>() { - }; - return processWrapperList(tr, url, "changes"); + return processWrapperList(getTypeReference(ChangeListItem.class), url, "changes"); } } diff --git a/src/main/java/com/omertron/themoviedbapi/methods/TmdbMovies.java b/src/main/java/com/omertron/themoviedbapi/methods/TmdbMovies.java index f5c7b22ff..e17c37ae2 100644 --- a/src/main/java/com/omertron/themoviedbapi/methods/TmdbMovies.java +++ b/src/main/java/com/omertron/themoviedbapi/methods/TmdbMovies.java @@ -52,7 +52,6 @@ import com.omertron.themoviedbapi.wrapper.WrapperTranslations; import com.omertron.themoviedbapi.wrapper.WrapperVideos; import java.io.IOException; import java.net.URL; -import java.util.List; import org.yamj.api.common.exception.ApiExceptionType; /** @@ -409,10 +408,7 @@ public class TmdbMovies extends AbstractMethod { URL url = new ApiUrl(apiKey, MethodBase.MOVIE).subMethod(MethodSub.REVIEWS).buildUrl(parameters); WrapperGenericList wrapper = processWrapper(getTypeReference(Review.class), url, "review"); - TmdbResultsList results = new TmdbResultsList(null); - results.getResults().addAll(wrapper.getResults()); - results.copyWrapper(wrapper); - return results; + return wrapper.getTmdbResultsList(); } /** @@ -433,10 +429,8 @@ public class TmdbMovies extends AbstractMethod { parameters.add(Param.APPEND, appendToResponse); URL url = new ApiUrl(apiKey, MethodBase.MOVIE).subMethod(MethodSub.LISTS).buildUrl(parameters); - List wrapper = processWrapperList(getTypeReference(UserList.class), url, "movie lists"); - TmdbResultsList results = new TmdbResultsList(null); - results.getResults().addAll(wrapper); - return results; + WrapperGenericList wrapper = processWrapper(getTypeReference(UserList.class), url, "movie lists"); + return wrapper.getTmdbResultsList(); } /** diff --git a/src/main/java/com/omertron/themoviedbapi/methods/TmdbPeople.java b/src/main/java/com/omertron/themoviedbapi/methods/TmdbPeople.java index 25fd4f44d..645b64dc3 100644 --- a/src/main/java/com/omertron/themoviedbapi/methods/TmdbPeople.java +++ b/src/main/java/com/omertron/themoviedbapi/methods/TmdbPeople.java @@ -246,21 +246,8 @@ public class TmdbPeople extends AbstractMethod { parameters.add(Param.LANGUAGE, language); URL url = new ApiUrl(apiKey, MethodBase.PERSON).subMethod(MethodSub.TAGGED_IMAGES).buildUrl(parameters); - - WrapperGenericList wrapper; - - String webpage = httpTools.getRequest(url); - try { - TypeReference tr = new TypeReference>() { - }; - wrapper = MAPPER.readValue(webpage, tr); - } catch (IOException ex) { - throw new MovieDbException(ApiExceptionType.MAPPING_FAILED, "Failed to get tagged images", url, ex); - } - - TmdbResultsList results = new TmdbResultsList(wrapper.getResults()); - results.copyWrapper(wrapper); - return results; + WrapperGenericList wrapper = processWrapper(getTypeReference(ArtworkMedia.class), url, "tagged images"); + return wrapper.getTmdbResultsList(); } /** @@ -311,19 +298,8 @@ public class TmdbPeople extends AbstractMethod { parameters.add(Param.PAGE, page); URL url = new ApiUrl(apiKey, MethodBase.PERSON).subMethod(MethodSub.POPULAR).buildUrl(parameters); - String webpage = httpTools.getRequest(url); - - WrapperGenericList wrapper; - try { - TypeReference tr = new TypeReference>() { - }; - wrapper = MAPPER.readValue(webpage, tr); - TmdbResultsList results = new TmdbResultsList(wrapper.getResults()); - results.copyWrapper(wrapper); - return results; - } catch (IOException ex) { - throw new MovieDbException(ApiExceptionType.MAPPING_FAILED, "Failed to get person popular", url, ex); - } + WrapperGenericList wrapper = processWrapper(getTypeReference(PersonFind.class), url, "person popular"); + return wrapper.getTmdbResultsList(); } /** diff --git a/src/main/java/com/omertron/themoviedbapi/methods/TmdbSearch.java b/src/main/java/com/omertron/themoviedbapi/methods/TmdbSearch.java index 91423093e..fd7319db5 100644 --- a/src/main/java/com/omertron/themoviedbapi/methods/TmdbSearch.java +++ b/src/main/java/com/omertron/themoviedbapi/methods/TmdbSearch.java @@ -22,12 +22,12 @@ package com.omertron.themoviedbapi.methods; import com.omertron.themoviedbapi.MovieDbException; import com.omertron.themoviedbapi.enumeration.SearchType; import static com.omertron.themoviedbapi.methods.AbstractMethod.MAPPER; -import com.omertron.themoviedbapi.model.movie.MovieDb; -import com.omertron.themoviedbapi.model.media.MediaBasic; -import com.omertron.themoviedbapi.model.keyword.Keyword; import com.omertron.themoviedbapi.model.collection.Collection; import com.omertron.themoviedbapi.model.company.Company; +import com.omertron.themoviedbapi.model.keyword.Keyword; import com.omertron.themoviedbapi.model.list.UserList; +import com.omertron.themoviedbapi.model.media.MediaBasic; +import com.omertron.themoviedbapi.model.movie.MovieDb; import com.omertron.themoviedbapi.model.person.PersonFind; import com.omertron.themoviedbapi.model.tv.TVBasic; import com.omertron.themoviedbapi.results.TmdbResultsList; @@ -80,9 +80,7 @@ public class TmdbSearch extends AbstractMethod { URL url = new ApiUrl(apiKey, MethodBase.SEARCH).subMethod(MethodSub.COMPANY).buildUrl(parameters); WrapperGenericList wrapper = processWrapper(getTypeReference(Company.class), url, "company"); - TmdbResultsList results = new TmdbResultsList(wrapper.getResults()); - results.copyWrapper(wrapper); - return results; + return wrapper.getTmdbResultsList(); } /** @@ -102,9 +100,7 @@ public class TmdbSearch extends AbstractMethod { URL url = new ApiUrl(apiKey, MethodBase.SEARCH).subMethod(MethodSub.COLLECTION).buildUrl(parameters); WrapperGenericList wrapper = processWrapper(getTypeReference(Collection.class), url, "collection"); - TmdbResultsList results = new TmdbResultsList(wrapper.getResults()); - results.copyWrapper(wrapper); - return results; + return wrapper.getTmdbResultsList(); } /** @@ -122,9 +118,7 @@ public class TmdbSearch extends AbstractMethod { URL url = new ApiUrl(apiKey, MethodBase.SEARCH).subMethod(MethodSub.KEYWORD).buildUrl(parameters); WrapperGenericList wrapper = processWrapper(getTypeReference(Keyword.class), url, "keyword"); - TmdbResultsList results = new TmdbResultsList(wrapper.getResults()); - results.copyWrapper(wrapper); - return results; + return wrapper.getTmdbResultsList(); } /** @@ -144,9 +138,7 @@ public class TmdbSearch extends AbstractMethod { URL url = new ApiUrl(apiKey, MethodBase.SEARCH).subMethod(MethodSub.LIST).buildUrl(parameters); WrapperGenericList wrapper = processWrapper(getTypeReference(UserList.class), url, "list"); - TmdbResultsList results = new TmdbResultsList(wrapper.getResults()); - results.copyWrapper(wrapper); - return results; + return wrapper.getTmdbResultsList(); } /** @@ -182,9 +174,7 @@ public class TmdbSearch extends AbstractMethod { URL url = new ApiUrl(apiKey, MethodBase.SEARCH).subMethod(MethodSub.MOVIE).buildUrl(parameters); WrapperGenericList wrapper = processWrapper(getTypeReference(MovieDb.class), url, "movie"); - TmdbResultsList results = new TmdbResultsList(wrapper.getResults()); - results.copyWrapper(wrapper); - return results; + return wrapper.getTmdbResultsList(); } /** @@ -242,11 +232,8 @@ public class TmdbSearch extends AbstractMethod { parameters.add(Param.SEARCH_TYPE, searchType.getPropertyString()); } URL url = new ApiUrl(apiKey, MethodBase.SEARCH).subMethod(MethodSub.PERSON).buildUrl(parameters); - WrapperGenericList wrapper = processWrapper(getTypeReference(PersonFind.class), url, "person"); - TmdbResultsList results = new TmdbResultsList(wrapper.getResults()); - results.copyWrapper(wrapper); - return results; + return wrapper.getTmdbResultsList(); } /** @@ -270,11 +257,8 @@ public class TmdbSearch extends AbstractMethod { parameters.add(Param.SEARCH_TYPE, searchType.getPropertyString()); } URL url = new ApiUrl(apiKey, MethodBase.SEARCH).subMethod(MethodSub.MOVIE).buildUrl(parameters); - WrapperGenericList wrapper = processWrapper(getTypeReference(TVBasic.class), url, "TV Show"); - TmdbResultsList results = new TmdbResultsList(wrapper.getResults()); - results.copyWrapper(wrapper); - return results; + return wrapper.getTmdbResultsList(); } }