Update WrapperGenericList methods

master
Stuart Boston 11 years ago
parent ffdeb4c1b8
commit 286b748a34

@ -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<WrapperGenericList<Review>>() {
});
TYPE_REFS.put(ChangeListItem.class, new TypeReference<WrapperGenericList<ChangeListItem>>() {
});
TYPE_REFS.put(ArtworkMedia.class, new TypeReference<WrapperGenericList<ArtworkMedia>>() {
});
}
/**

@ -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");

@ -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<WrapperGenericList<ChangeListItem>>() {
};
return processWrapperList(tr, url, "changes");
return processWrapperList(getTypeReference(ChangeListItem.class), url, "changes");
}
}

@ -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<Review> wrapper = processWrapper(getTypeReference(Review.class), url, "review");
TmdbResultsList<Review> results = new TmdbResultsList<Review>(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<UserList> wrapper = processWrapperList(getTypeReference(UserList.class), url, "movie lists");
TmdbResultsList<UserList> results = new TmdbResultsList<UserList>(null);
results.getResults().addAll(wrapper);
return results;
WrapperGenericList<UserList> wrapper = processWrapper(getTypeReference(UserList.class), url, "movie lists");
return wrapper.getTmdbResultsList();
}
/**

@ -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<ArtworkMedia> wrapper;
String webpage = httpTools.getRequest(url);
try {
TypeReference tr = new TypeReference<WrapperGenericList<ArtworkMedia>>() {
};
wrapper = MAPPER.readValue(webpage, tr);
} catch (IOException ex) {
throw new MovieDbException(ApiExceptionType.MAPPING_FAILED, "Failed to get tagged images", url, ex);
}
TmdbResultsList<ArtworkMedia> results = new TmdbResultsList<ArtworkMedia>(wrapper.getResults());
results.copyWrapper(wrapper);
return results;
WrapperGenericList<ArtworkMedia> 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<PersonFind> wrapper;
try {
TypeReference tr = new TypeReference<WrapperGenericList<PersonFind>>() {
};
wrapper = MAPPER.readValue(webpage, tr);
TmdbResultsList<PersonFind> results = new TmdbResultsList<PersonFind>(wrapper.getResults());
results.copyWrapper(wrapper);
return results;
} catch (IOException ex) {
throw new MovieDbException(ApiExceptionType.MAPPING_FAILED, "Failed to get person popular", url, ex);
}
WrapperGenericList<PersonFind> wrapper = processWrapper(getTypeReference(PersonFind.class), url, "person popular");
return wrapper.getTmdbResultsList();
}
/**

@ -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<Company> wrapper = processWrapper(getTypeReference(Company.class), url, "company");
TmdbResultsList<Company> results = new TmdbResultsList<Company>(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<Collection> wrapper = processWrapper(getTypeReference(Collection.class), url, "collection");
TmdbResultsList<Collection> results = new TmdbResultsList<Collection>(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<Keyword> wrapper = processWrapper(getTypeReference(Keyword.class), url, "keyword");
TmdbResultsList<Keyword> results = new TmdbResultsList<Keyword>(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<UserList> wrapper = processWrapper(getTypeReference(UserList.class), url, "list");
TmdbResultsList<UserList> results = new TmdbResultsList<UserList>(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<MovieDb> wrapper = processWrapper(getTypeReference(MovieDb.class), url, "movie");
TmdbResultsList<MovieDb> results = new TmdbResultsList<MovieDb>(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<PersonFind> wrapper = processWrapper(getTypeReference(PersonFind.class), url, "person");
TmdbResultsList<PersonFind> results = new TmdbResultsList<PersonFind>(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<TVBasic> wrapper = processWrapper(getTypeReference(TVBasic.class), url, "TV Show");
TmdbResultsList<TVBasic> results = new TmdbResultsList<TVBasic>(wrapper.getResults());
results.copyWrapper(wrapper);
return results;
return wrapper.getTmdbResultsList();
}
}

Loading…
Cancel
Save