GetUsersSpecificationQueryHandler.java

package es.um.atica.faker.users.application.query;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import es.um.atica.faker.users.application.service.UsersPaginatedReadService;
import es.um.atica.faker.users.domain.model.User;
import es.um.atica.shared.domain.cqrs.QueryHandler;

@Component
public class GetUsersSpecificationQueryHandler implements QueryHandler<Iterable<User>,GetUsersSpecificationQuery> {

    @Autowired
    private UsersPaginatedReadService usersPaginatedReadService;

    @Override
    public Iterable<User> handle(GetUsersSpecificationQuery query) throws Exception {
        return usersPaginatedReadService.findAllUsersSpecification(
            usersPaginatedReadService.specificationService()
                .buildSpecificationFromSearch(query.getSearchList()),
            query.getPage(),
            query.getPageSize()
        );
    }
}