@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<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); } } }
public List<CharacterDto> getCharacters() { return getResults(); }
@Override public String toString() { return "CharactersDto{" + "offset=" + getOffset() + ", limit=" + getLimit() + ", total=" + getTotal() + ", count=" + getCount() + ", characters=" + getCharacters().toString() + '}'; } }
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); }