PurchaseExportIterator.java

package org.oxerr.stubhub.client.cxf.impl.purchase;

import org.oxerr.stubhub.client.cxf.impl.util.PageIterator;
import org.oxerr.stubhub.client.cxf.resource.PurchaseResource;
import org.oxerr.stubhub.client.model.PurchaseResponse;
import org.oxerr.stubhub.client.purchase.PurchaseExportCriteria;

public class PurchaseExportIterator extends PageIterator<PurchaseResponse> {

	private final PurchaseExportCriteria criteria;

	private final PurchaseResource purchaseResource;

	protected PurchaseExportIterator(PurchaseExportCriteria criteria, PurchaseResource purchaseResource) {
		super(criteria.getMaxPageSize() != null ? criteria.getMaxPageSize().intValue() : 100);
		this.criteria = criteria;
		this.purchaseResource = purchaseResource;
	}

	@Override
	protected Page<PurchaseResponse> fetchPage(Long paginationToken) {
		var r = purchaseResource.getPurchases(
			paginationToken,
			criteria.getMaxPageSize(),
			criteria.getIncludeBuyerCommissionsPerTicket(),
			criteria.getUpdatedDateSince(),
			criteria.getOnlyDeleted(),
			criteria.getDeletedState(),
			criteria.getCreateDateFrom(),
			criteria.getCreateDateTo(),
			criteria.getUpdatedDateTo()
		);
		return new PageImpl(r.getPaginationToken(), r.getNumberOfItems(), r.getPurchases());
	}

}