package se.bjurr.prnfb.service; import com.atlassian.bitbucket.auth.AuthenticationContext; import com.atlassian.bitbucket.pull.PullRequest; import com.atlassian.bitbucket.repository.RepositoryService; import com.atlassian.bitbucket.server.ApplicationPropertiesService; import com.atlassian.bitbucket.user.ApplicationUser; import com.atlassian.bitbucket.user.SecurityService; import se.bjurr.prnfb.http.ClientKeyStore; import se.bjurr.prnfb.listener.PrnfbPullRequestAction; import se.bjurr.prnfb.settings.PrnfbNotification; public class PrnfbRendererFactory { private final AuthenticationContext authenticationContext; private final ApplicationPropertiesService propertiesService; private final RepositoryService repositoryService; private final SecurityService securityService; public PrnfbRendererFactory( RepositoryService repositoryService, ApplicationPropertiesService propertiesService, AuthenticationContext authenticationContext, SecurityService securityService) { this.repositoryService = repositoryService; this.propertiesService = propertiesService; this.authenticationContext = authenticationContext; this.securityService = securityService; } public PrnfbRendererWrapper create( PullRequest pullRequest, PrnfbPullRequestAction pullRequestAction, VariablesContext variables, ClientKeyStore clientKeyStore, boolean shouldAcceptAnyCertificate) { PrnfbNotification prnfbNotification = null; PrnfbRenderer renderer = create(pullRequest, pullRequestAction, prnfbNotification, variables); return new PrnfbRendererWrapper(renderer, clientKeyStore, shouldAcceptAnyCertificate); } public PrnfbRenderer create( PullRequest pullRequest, PrnfbPullRequestAction pullRequestAction, PrnfbNotification prnfbNotification, VariablesContext variables) { return create( pullRequest, pullRequestAction, prnfbNotification, variables, this.authenticationContext.getCurrentUser()); } public PrnfbRenderer create( PullRequest pullRequest, PrnfbPullRequestAction pullRequestAction, PrnfbNotification prnfbNotification, VariablesContext variables, ApplicationUser currentUser) { return new PrnfbRenderer( pullRequest, pullRequestAction, currentUser, this.repositoryService, this.propertiesService, prnfbNotification, variables.getVariables(), this.securityService); } }