package com.azimo.tool.task.provider; import com.azimo.tool.firebase.FirebaseServiceManager; import com.azimo.tool.firebase.collection.ReportedReviewsCollection; import com.azimo.tool.publisher.AndroidPublisherReviewsService; import com.azimo.tool.publisher.collection.ReviewCollection; import com.azimo.tool.publisher.model.AppReview; import com.azimo.tool.task.interfaces.Provider; /** * Created by F1sherKK on 27/01/17. */ public class UnreportedReviewsProvider implements Provider<ReviewCollection> { private AndroidPublisherReviewsService publisherReviewsService; private FirebaseServiceManager firebaseIssueServiceManager; public UnreportedReviewsProvider(AndroidPublisherReviewsService publisherReviewsService, FirebaseServiceManager firebaseIssueServiceManager) { this.publisherReviewsService = publisherReviewsService; this.firebaseIssueServiceManager = firebaseIssueServiceManager; } @Override public ReviewCollection fetch() throws Exception { ReviewCollection reviews = publisherReviewsService.getReviews(AndroidPublisherReviewsService.MAX_REVIEWS); ReportedReviewsCollection firebaseReportedReviews = firebaseIssueServiceManager.getReportedReviews(); ReviewCollection result = new ReviewCollection(); for (AppReview review : reviews) { if (!firebaseReportedReviews.containsReviewId(review.getReviewId())) { result.add(review); } } return result; } }