use of li.naska.bgg.util.Page in project bgg-api by tnaskali.
the class GuildsService method getPagedMembers.
public Mono<Page<Member>> getPagedMembers(Integer id, GuildMembersParams params, PagingParams pagingParams) {
PagingHelper helper = new PagingHelper(pagingParams.getSize(), pagingParams.getPage(), BGG_GUILD_MEMBERS_PAGE_SIZE);
BggGuildQueryParams firstPageQueryParams = guildMembersParamsMapper.toBggModel(params);
firstPageQueryParams.setId(id);
firstPageQueryParams.setMembers(1);
firstPageQueryParams.setPage(helper.getBggStartPage());
return getGuild(firstPageQueryParams).flatMap(guild -> helper.getBggPagesRange(guild.getNummembers()).flatMapSequential(page -> {
if (page == helper.getBggStartPage()) {
return Mono.just(guild);
}
BggGuildQueryParams queryParams = guildMembersParamsMapper.toBggModel(params);
queryParams.setId(id);
queryParams.setMembers(1);
queryParams.setPage(page);
return getGuild(queryParams);
}).flatMapIterable(Guild::getMembers).collect(Collectors.toList()).map(list -> helper.buildPage(list, guild.getNummembers())));
}
use of li.naska.bgg.util.Page in project bgg-api by tnaskali.
the class UsersService method getPagedGuilds.
public Mono<Page<Guild>> getPagedGuilds(String username, PagingParams pagingParams) {
PagingHelper helper = new PagingHelper(pagingParams.getSize(), pagingParams.getPage(), BGG_USER_GUILDS_PAGE_SIZE);
BggUserQueryParams firstPageQueryParams = new BggUserQueryParams();
firstPageQueryParams.setName(username);
firstPageQueryParams.setGuilds(1);
firstPageQueryParams.setPage(helper.getBggStartPage());
return getUser(firstPageQueryParams).flatMap(user -> helper.getBggPagesRange(user.getNumguilds()).flatMapSequential(page -> {
if (page == helper.getBggStartPage()) {
return Mono.just(user);
}
BggUserQueryParams queryParams = new BggUserQueryParams();
queryParams.setName(username);
queryParams.setGuilds(1);
queryParams.setPage(page);
return getUser(queryParams);
}).flatMapIterable(User::getGuilds).collect(Collectors.toList()).map(list -> helper.buildPage(list, user.getNumguilds())));
}
Aggregations