package com.azimo.tool.task.module; import com.azimo.tool.firebase.FirebaseServiceManager; import com.azimo.tool.jira.JiraIssueServiceManager; import com.azimo.tool.publisher.AndroidPublisherReviewsService; import com.azimo.tool.slack.SlackServiceManager; import com.azimo.tool.task.CreateJiraIssuesTask; import com.azimo.tool.task.ReportToSlackTask; import com.azimo.tool.task.provider.UncreatedIssuesProvider; import com.azimo.tool.task.provider.UnreportedReviewsProvider; import com.azimo.tool.task.uploader.FirebaseIssuesUploader; import com.azimo.tool.task.uploader.FirebaseReviewsUploader; import com.azimo.tool.task.uploader.JiraUploader; import com.azimo.tool.task.uploader.SlackUploader; import com.azimo.tool.utils.converter.IssueConverter; import com.azimo.tool.utils.converter.MessageConverter; import com.azimo.tool.utils.converter.ReviewConverter; import dagger.Module; import dagger.Provides; import javax.inject.Singleton; /** * Created by F1sherKK on 25/01/17. */ @Module public class LaunchTaskModule { @Singleton @Provides public CreateJiraIssuesTask providesCreateJiraIssuesTask(UncreatedIssuesProvider uncreatedIssuesProvider, JiraUploader jiraUploader, FirebaseServiceManager firebaseServiceManager, FirebaseIssuesUploader firebaseIssuesUploader) { return new CreateJiraIssuesTask( uncreatedIssuesProvider, jiraUploader, firebaseServiceManager, firebaseIssuesUploader); } @Singleton @Provides public ReportToSlackTask providesReportToSlackTask(UnreportedReviewsProvider unreportedReviewsProvider, SlackUploader slackUploader, FirebaseServiceManager firebaseServiceManager, FirebaseReviewsUploader firebaseReviewsUploader) { return new ReportToSlackTask( unreportedReviewsProvider, slackUploader, firebaseServiceManager, firebaseReviewsUploader); } @Singleton @Provides public FirebaseIssuesUploader providesFirebaseIssuesUploader(FirebaseServiceManager firebaseServiceManager) { return new FirebaseIssuesUploader(firebaseServiceManager); } @Singleton @Provides public FirebaseReviewsUploader providesFirebaseReviewsUploader(FirebaseServiceManager firebaseServiceManager) { return new FirebaseReviewsUploader(firebaseServiceManager); } @Singleton @Provides public JiraUploader providesJiraUploader(IssueConverter issueConverter, JiraIssueServiceManager serviceManager) { return new JiraUploader(issueConverter, serviceManager); } @Singleton @Provides public SlackUploader providesSlackUploader(MessageConverter messageConverter, ReviewConverter reviewConverter, SlackServiceManager slackServiceManager) { return new SlackUploader(messageConverter, reviewConverter, slackServiceManager); } @Singleton @Provides public UncreatedIssuesProvider providesUncreatedIssuesProvider(AndroidPublisherReviewsService service, FirebaseServiceManager firebaseServiceManager) { return new UncreatedIssuesProvider(service, firebaseServiceManager); } @Singleton @Provides public UnreportedReviewsProvider unreportedReviewsProvider(AndroidPublisherReviewsService service, FirebaseServiceManager firebaseServiceManager) { return new UnreportedReviewsProvider(service, firebaseServiceManager); } }