package com.azimo.tool.firebase;
import com.azimo.tool.firebase.collection.CreatedIssueCollection;
import com.azimo.tool.firebase.collection.ReportedReviewsCollection;
import com.azimo.tool.firebase.mapper.CreatedIssueMapper;
import com.azimo.tool.firebase.mapper.ReportedReviewMapper;
import com.azimo.tool.firebase.model.CreatedIssuesList;
import com.azimo.tool.firebase.model.ReportedReviewsList;
import com.azimo.tool.firebase.response.DefaultFirebaseResponse;
import com.azimo.tool.firebase.response.GetCreatedIssuesResponse;
import com.azimo.tool.firebase.response.GetReportedReviewsResponse;
import java.io.IOException;
/**
* Created by F1sherKK on 17/01/17.
*/
public class FirebaseServiceManager {
private final FirebaseService firebaseService;
private final CreatedIssueMapper createdIssueMapper;
private final ReportedReviewMapper reportedReviewMapper;
public FirebaseServiceManager(FirebaseService firebaseService,
CreatedIssueMapper createdIssueMapper,
ReportedReviewMapper reportedReviewMapper) {
this.firebaseService = firebaseService;
this.createdIssueMapper = createdIssueMapper;
this.reportedReviewMapper = reportedReviewMapper;
}
public DefaultFirebaseResponse updateCreatedIssues(CreatedIssueCollection collection) {
CreatedIssuesList createdIssuesList = createdIssueMapper.createdIssuesCollectionToList(collection);
return firebaseService.updateCreatedIssues(createdIssuesList).toBlocking().first();
}
public CreatedIssueCollection getCreatedIssues() throws IOException {
GetCreatedIssuesResponse response = firebaseService.getCreatedIssues().toBlocking().first();
return createdIssueMapper.getCreatedIssuesResponseToCollection(response);
}
public DefaultFirebaseResponse updateReportedReviews(ReportedReviewsCollection collection) {
ReportedReviewsList reportedReviewsList = reportedReviewMapper.reportedReviewsCollectionToList(collection);
return firebaseService.updateReportedReviews(reportedReviewsList).toBlocking().first();
}
public ReportedReviewsCollection getReportedReviews() throws IOException {
GetReportedReviewsResponse response = firebaseService.getReportedReviews().toBlocking().first();
return reportedReviewMapper.getReportedReviewsResponseToCollection(response);
}
}