Package com.atlassian.jira.bc.issue.vote
Interface VoteService
- All Known Implementing Classes:
DefaultVoteService
@PublicApi
public interface VoteService
Vote Service used to add and remove votes from a particular issue. This service's methods
will make sure that when voting, all of JIRA's business rules are enforced. This means
that permissions and data validation will be checked.
- Since:
- v4.1
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic class
A simple validation result that holds the user trying to vote, and the issue being voted on. -
Method Summary
Modifier and TypeMethodDescriptionint
addVote
(ApplicationUser remoteUser, VoteService.VoteValidationResult validationResult) Adds a new vote using the specified validation result.getVoterHistory
(Issue issue, ApplicationUser remoteUser) Get the list of vote history for an issue.boolean
hasVoted
(Issue issue, ApplicationUser user) Find if the specified user has voted on an issueboolean
Retrieves the 'jira.option.voting' propertyint
removeVote
(ApplicationUser remoteUser, VoteService.VoteValidationResult validationResult) Removes a new vote using the specified validation result.validateAddVote
(ApplicationUser remoteUser, ApplicationUser user, Issue issue) Validates if the user currently logged in may add a vote by the user supplied for the issue provided.validateRemoveVote
(ApplicationUser remoteUser, ApplicationUser user, Issue issue) Validates if the user currently logged in may remove a vote for the user supplied for the issue provided.viewVoters
(Issue issue, ApplicationUser remoteUser) Get the list of all users who have voted on an issue.
-
Method Details
-
validateAddVote
VoteService.VoteValidationResult validateAddVote(ApplicationUser remoteUser, ApplicationUser user, Issue issue) Validates if the user currently logged in may add a vote by the user supplied for the issue provided. The remoteUser and user arguments may be the same if the current user is voting him/herself. TheVoteService.VoteValidationResult
produced by this method should be used in conjunction with theaddVote(ApplicationUser, VoteValidationResult)
method. The following conditions will fail validation:- remoteUser is null (i.e. not logged in)
- the user is the reporter of the issue
- the issue has already been resolved
- voting has been disabled system wide
- the user doesn't have permission to browse the issue
- Parameters:
remoteUser
- The currently logged in useruser
- The user for whom a vote is being addedissue
- The issue being voted on- Returns:
- A validation result containing all errors, as well as the user and issue being voted on
-
addVote
Adds a new vote using the specified validation result. The vote will not be added if the user already voted for the issue.- Parameters:
remoteUser
- The currently logged in uservalidationResult
- Validation result for adding a new vote- Returns:
- The updated number of votes for the issue being voted for
-
validateRemoveVote
VoteService.VoteValidationResult validateRemoveVote(ApplicationUser remoteUser, ApplicationUser user, Issue issue) Validates if the user currently logged in may remove a vote for the user supplied for the issue provided. The remoteUser and user arguments may be the same if the current user is voting him/herself. TheVoteService.VoteValidationResult
produced by this method should be used in conjunction with theremoveVote(ApplicationUser, VoteValidationResult)
method. The following conditions will fail validation:- remoteUser is null (i.e. not logged in)
- the user is the reporter of the issue
- the issue has already been resolved
- voting has been disabled system wide
- the user doesn't have permission to browse the issue
- Parameters:
remoteUser
- The currently logged in useruser
- The user for whom a vote is being removedissue
- The issue being voted on- Returns:
- A validation result containing all errors, as well as the user and issue being voted on
-
removeVote
Removes a new vote using the specified validation result. The vote will not be removed if the user didn't voted for the issue.- Parameters:
remoteUser
- The currently logged in uservalidationResult
- Validation result for removing a new vote- Returns:
- The updated number of votes for the issue being voted for
-
viewVoters
Get the list of all users who have voted on an issue.- Parameters:
issue
- the issue to viewremoteUser
- the user who wants to know- Returns:
- a service outcome. if valid you can obtain the users that have voted on the.
-
getVoterHistory
Get the list of vote history for an issue. The history will be in time sequence.- Parameters:
issue
- the issue to viewremoteUser
- the user who wants to know- Returns:
- a service outcome. if valid you can obtain the users that have voted on the.
-
isVotingEnabled
boolean isVotingEnabled()Retrieves the 'jira.option.voting' property- Returns:
- True if voting is enabled
-
hasVoted
Find if the specified user has voted on an issue- Parameters:
issue
- the issue to checkuser
- the user to check- Returns:
- true if the user has voted on the issue
-