diff --git a/src/main/java/com/microsoft/store/partnercenter/invoices/IReconciliationLineItemCollection.java b/src/main/java/com/microsoft/store/partnercenter/invoices/IReconciliationLineItemCollection.java index 729a8fe..6ecc4c4 100644 --- a/src/main/java/com/microsoft/store/partnercenter/invoices/IReconciliationLineItemCollection.java +++ b/src/main/java/com/microsoft/store/partnercenter/invoices/IReconciliationLineItemCollection.java @@ -7,6 +7,7 @@ import com.microsoft.store.partnercenter.genericoperations.IEntireEntityCollectionRetrievalOperations; import com.microsoft.store.partnercenter.models.SeekBasedResourceCollection; import com.microsoft.store.partnercenter.models.invoices.InvoiceLineItem; +import com.microsoft.store.partnercenter.models.query.SeekOperation; /** * Represents the operations that can be done on partner's recon line items. @@ -14,4 +15,10 @@ public interface IReconciliationLineItemCollection extends IPartnerComponent, IEntireEntityCollectionRetrievalOperations> { -} \ No newline at end of file + /** + * Seek the recon line items collection of the partner. + * + * @return The collection of recon line items. + */ + SeekBasedResourceCollection get(String continuationToken, SeekOperation seekOperation); +} diff --git a/src/main/java/com/microsoft/store/partnercenter/invoices/ReconciliationLineItemCollectionOperations.java b/src/main/java/com/microsoft/store/partnercenter/invoices/ReconciliationLineItemCollectionOperations.java index eb555f0..63c46a1 100644 --- a/src/main/java/com/microsoft/store/partnercenter/invoices/ReconciliationLineItemCollectionOperations.java +++ b/src/main/java/com/microsoft/store/partnercenter/invoices/ReconciliationLineItemCollectionOperations.java @@ -6,6 +6,8 @@ import java.text.MessageFormat; import java.util.ArrayList; import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import com.fasterxml.jackson.core.type.TypeReference; import com.microsoft.store.partnercenter.BasePartnerComponent; @@ -16,6 +18,7 @@ import com.microsoft.store.partnercenter.models.invoices.BillingProvider; import com.microsoft.store.partnercenter.models.invoices.InvoiceLineItem; import com.microsoft.store.partnercenter.models.invoices.InvoiceLineItemType; +import com.microsoft.store.partnercenter.models.query.SeekOperation; import com.microsoft.store.partnercenter.models.utils.KeyValuePair; import com.microsoft.store.partnercenter.utils.StringHelper; @@ -120,15 +123,27 @@ public ReconciliationLineItemCollectionOperations(IPartner rootPartnerOperations this.pageSize = pageSize; } - + /** * Gets the recon line items collection of the partner. + * + * @return The collection of recon line items. + */ + @Override + public SeekBasedResourceCollection get() + { + return get(null, null); + } + + /** + * Seek the recon line items collection of the partner. * * @return The collection of recon line items. */ @Override - public SeekBasedResourceCollection get() + public SeekBasedResourceCollection get(String continuationToken, SeekOperation seekOperation) { + Map headers = new HashMap<>(); Collection> parameters = new ArrayList>(); parameters.add( @@ -156,12 +171,30 @@ public SeekBasedResourceCollection get() PartnerService.getInstance().getConfiguration().getApis().get("GetReconciliationLineItems").getParameters().get("Size"), String.valueOf(pageSize))); + if (!StringHelper.isNullOrWhiteSpace(continuationToken)) + { + if (seekOperation == null) + { + throw new IllegalArgumentException("SeekOperation can not be null"); + } + + headers.put( + PartnerService.getInstance().getConfiguration().getApis().get("GetReconciliationLineItems").getAdditionalHeaders().get("ContinuationToken"), + continuationToken); + + parameters.add( + new KeyValuePair( + PartnerService.getInstance().getConfiguration().getApis().get("GetReconciliationLineItems").getParameters().get("SeekOperation"), + seekOperation.toString())); + } + return this.getPartner().getServiceClient().get( this.getPartner(), new TypeReference>(){}, MessageFormat.format( PartnerService.getInstance().getConfiguration().getApis().get("GetReconciliationLineItems").getPath(), this.getContext()), + headers, parameters); } -} \ No newline at end of file +}