@Override public ComicSeries getByKey(Integer key) throws Exception { MarvelResponse<SeriesDto> seriesResponse = seriesApiClient.getSeriesById(key.toString()); SeriesDto seriesDto = seriesResponse.getResponse(); ComicSeries comicSeries = mapper.reverseMap(seriesDto); return comicSeries; }
@Override public Character getByKey(String key) throws Exception { MarvelResponse<CharacterDto> characterResponse = characterApiClient.getCharacter(key); CharacterDto characterDto = characterResponse.getResponse(); return mapper.reverseMap(characterDto); }
@Override public List<Comic> getComicBySeries(int key) throws Exception { MarvelResponse<ComicsDto> comicsBySeries = seriesApiClient.getComicsBySeries(Integer.toString(key), 0, MAX_COMICS_BY_SERIES); ComicsDto comicsDto = comicsBySeries.getResponse(); List<Comic> comics = new ArrayList<>(); for (ComicDto comicDto : comicsDto.getComics()) { Comic comic = new Comic(); comic.setKey(comicDto.getId()); comic.setName(comicDto.getTitle()); comic.setThumbnailUrl(comicDto.getThumbnail().getImageUrl(MarvelImage.Size.PORTRAIT_UNCANNY)); comics.add(comic); } return comics; }
@Override public PaginatedCollection<ComicSeries> getPage(Page page) throws MarvelApiException { int offset = page.getOffset(); int limit = page.getLimit(); MarvelResponse<SeriesCollectionDto> seriesApiResponse = seriesApiClient.getAll(offset, limit); SeriesCollectionDto seriesCollectionDto = seriesApiResponse.getResponse(); Collection<ComicSeries> comicSeries = mapper.reverseMap(seriesCollectionDto.getSeries()); PaginatedCollection<ComicSeries> comicSeriesPage = new PaginatedCollection<>(comicSeries); comicSeriesPage.setPage(page); comicSeriesPage.setHasMore( seriesCollectionDto.getOffset() + seriesCollectionDto.getCount() < seriesCollectionDto.getTotal()); return comicSeriesPage; }
@Override public PaginatedCollection<Character> getPage(Page page) throws MarvelApiException { int offset = page.getOffset(); int limit = page.getLimit(); MarvelResponse<CharactersDto> charactersApiResponse = characterApiClient.getAll(offset, limit); CharactersDto charactersDto = charactersApiResponse.getResponse(); Collection<Character> characters = mapper.reverseMap(charactersDto.getCharacters()); PaginatedCollection<Character> charactersPage = new PaginatedCollection<>(characters); charactersPage.setPage(page); charactersPage.setHasMore( charactersDto.getOffset() + charactersDto.getCount() < charactersDto.getTotal()); return charactersPage; } }
public MarvelResponse<ComicDto> getComic(String comicId) throws MarvelApiException { if (comicId == null || comicId.isEmpty()) { throw new IllegalArgumentException("The ComicId must not be null or empty"); } ComicApiRest api = getApi(ComicApiRest.class); Call<MarvelResponse<ComicsDto>> call = api.getComic(comicId); MarvelResponse<ComicsDto> comics = execute(call); ComicsDto comicsDto = comics.getResponse(); if (comicsDto != null && comicsDto.getCount() > 0) { ComicDto comicDto = comicsDto.getComics().get(0); MarvelResponse<ComicDto> comicResponse = new MarvelResponse<>(comics); comicResponse.setResponse(comicDto); return comicResponse; } else { throw new MarvelApiException("Comic not found", null); } } }
public MarvelResponse<SeriesDto> getSeriesById(String seriesId) throws MarvelApiException { if (seriesId == null || seriesId.isEmpty()) { throw new IllegalArgumentException("The seriesId must not be null or empty"); } SeriesApiRest api = getApi(SeriesApiRest.class); Call<MarvelResponse<SeriesCollectionDto>> call = api.getSerie(seriesId); MarvelResponse<SeriesCollectionDto> series = execute(call); SeriesCollectionDto seriesCollectionDto = series.getResponse(); if (seriesCollectionDto != null && seriesCollectionDto.getCount() > 0) { SeriesDto seriesDto = seriesCollectionDto.getSeries().get(0); MarvelResponse<SeriesDto> serieResponse = new MarvelResponse<>(series); serieResponse.setResponse(seriesDto); return serieResponse; } else { throw new MarvelApiException("Series not found", null); } }
public MarvelResponse<CharacterDto> getCharacter(String characterId) throws MarvelApiException { if (characterId == null || characterId.isEmpty()) { throw new IllegalArgumentException("The CharacterId must not be null or empty"); } CharacterApiRest api = getApi(CharacterApiRest.class); Call<MarvelResponse<CharactersDto>> call = api.getCharacter(characterId); MarvelResponse<CharactersDto> characters = execute(call); CharactersDto charactersDto = characters.getResponse(); if (charactersDto != null && charactersDto.getCount() > 0) { CharacterDto characterDto = charactersDto.getCharacters().get(0); MarvelResponse<CharacterDto> characterResponse = new MarvelResponse<>(characters); characterResponse.setResponse(characterDto); return characterResponse; } else { throw new MarvelApiException("Character not found", null); } } }
@Test public void shouldParseGetCharacterResponse() throws Exception { CharacterApiClient characterApiClient = givenCharacterApiClient(); enqueueMockResponse("getCharacter.json"); MarvelResponse<CharacterDto> character = characterApiClient.getCharacter(THREED_MAN_CHARACTER_ID); assertBasicMarvelResponse(character); CharacterDto response = character.getResponse(); assertIs3dManCharacter(response); }
@Test public void shouldParseGetComicResponse() throws Exception { ComicApiClient comicApiClient = givenComicApiClient(); enqueueMockResponse("getComic.json"); MarvelResponse<ComicDto> comic = comicApiClient.getComic(ANY_COMIC_ID); assertBasicMarvelResponse(comic); ComicDto response = comic.getResponse(); assertIsLornaTheJungleGirl6(response); }
@Test public void shouldParseGetSeriesResponse() throws Exception { SeriesApiClient seriesApiClient = givenSeriesApiClient(); enqueueMockResponse("getSeries.json"); MarvelResponse<SeriesDto> series = seriesApiClient.getSeriesById(ANY_SERIE_ID); assertBasicMarvelResponse(series); SeriesDto response = series.getResponse(); assertIs5Ronnin(response); }
private void assertGetAllComicsResponseIsProperlyParsed(MarvelResponse<ComicsDto> comics) { ComicsDto comicsDto = comics.getResponse(); assertEquals(10, comicsDto.getCount()); assertEquals(10, comicsDto.getLimit()); assertEquals(0, comicsDto.getOffset()); assertEquals(35767, comicsDto.getTotal()); ComicDto comicDto = comicsDto.getComics().get(0); assertIsLornaTheJungleGirl6(comicDto); }
private void assertGetAllCharactersResponseIsProperlyParsed( MarvelResponse<CharactersDto> characters) { CharactersDto charactersDto = characters.getResponse(); assertEquals(10, charactersDto.getCount()); assertEquals(10, charactersDto.getLimit()); assertEquals(0, charactersDto.getOffset()); assertEquals(1485, charactersDto.getTotal()); CharacterDto firstCharacter = charactersDto.getCharacters().get(0); assertIs3dManCharacter(firstCharacter); }
private void assertGetAllSeriesResponseIsProperlyParsed( MarvelResponse<SeriesCollectionDto> series) { SeriesCollectionDto seriesCollectionDto = series.getResponse(); assertEquals(10, seriesCollectionDto.getCount()); assertEquals(10, seriesCollectionDto.getLimit()); assertEquals(0, seriesCollectionDto.getOffset()); assertEquals(1823, seriesCollectionDto.getTotal()); SeriesDto seriesDto = seriesCollectionDto.getSeries().get(0); assertIs5Ronnin(seriesDto); }