Search in sources :

Example 6 with Page

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())));
}
Also used : GuildMembersParams(li.naska.bgg.resource.v3.model.GuildMembersParams) Guild(li.naska.bgg.resource.v3.model.Guild) BggGuildsRepository(li.naska.bgg.repository.BggGuildsRepository) BggGuildQueryParams(li.naska.bgg.repository.model.BggGuildQueryParams) PagingHelper(li.naska.bgg.util.PagingHelper) Member(li.naska.bgg.resource.v3.model.Guild.Member) Autowired(org.springframework.beans.factory.annotation.Autowired) Mono(reactor.core.publisher.Mono) GuildMapper(li.naska.bgg.mapper.GuildMapper) Page(li.naska.bgg.util.Page) Collectors(java.util.stream.Collectors) PagingParams(li.naska.bgg.util.PagingParams) Flux(reactor.core.publisher.Flux) List(java.util.List) Service(org.springframework.stereotype.Service) XmlProcessor(li.naska.bgg.util.XmlProcessor) GuildMembersParamsMapper(li.naska.bgg.mapper.GuildMembersParamsMapper) PagingHelper(li.naska.bgg.util.PagingHelper) BggGuildQueryParams(li.naska.bgg.repository.model.BggGuildQueryParams)

Example 7 with Page

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())));
}
Also used : BggUserQueryParams(li.naska.bgg.repository.model.BggUserQueryParams) Guild(li.naska.bgg.resource.v3.model.Guild) UserParams(li.naska.bgg.resource.v3.model.UserParams) BggUsersRepository(li.naska.bgg.repository.BggUsersRepository) PagingHelper(li.naska.bgg.util.PagingHelper) Autowired(org.springframework.beans.factory.annotation.Autowired) Mono(reactor.core.publisher.Mono) UserParamsMapper(li.naska.bgg.mapper.UserParamsMapper) UserMapper(li.naska.bgg.mapper.UserMapper) Buddy(li.naska.bgg.resource.v3.model.User.Buddy) Page(li.naska.bgg.util.Page) Collectors(java.util.stream.Collectors) PagingParams(li.naska.bgg.util.PagingParams) Flux(reactor.core.publisher.Flux) List(java.util.List) Service(org.springframework.stereotype.Service) XmlProcessor(li.naska.bgg.util.XmlProcessor) User(li.naska.bgg.resource.v3.model.User) PagingHelper(li.naska.bgg.util.PagingHelper) BggUserQueryParams(li.naska.bgg.repository.model.BggUserQueryParams)

Aggregations

List (java.util.List)7 Collectors (java.util.stream.Collectors)7 Page (li.naska.bgg.util.Page)7 PagingHelper (li.naska.bgg.util.PagingHelper)7 PagingParams (li.naska.bgg.util.PagingParams)7 XmlProcessor (li.naska.bgg.util.XmlProcessor)7 Autowired (org.springframework.beans.factory.annotation.Autowired)7 Service (org.springframework.stereotype.Service)7 Flux (reactor.core.publisher.Flux)7 Mono (reactor.core.publisher.Mono)7 HttpStatus (org.springframework.http.HttpStatus)3 ResponseStatusException (org.springframework.web.server.ResponseStatusException)3 CollectionItemSubtype (com.boardgamegeek.enums.CollectionItemSubtype)2 ItemType (com.boardgamegeek.enums.ItemType)2 Things (com.boardgamegeek.thing.Things)2 CollectionMapper (li.naska.bgg.mapper.CollectionMapper)2 CollectionParamsMapper (li.naska.bgg.mapper.CollectionParamsMapper)2 ThingMapper (li.naska.bgg.mapper.ThingMapper)2 ThingsParamsMapper (li.naska.bgg.mapper.ThingsParamsMapper)2 BggCollectionRepository (li.naska.bgg.repository.BggCollectionRepository)2