Update UI result
This commit is contained in:
@@ -23,6 +23,8 @@ type VoteEventRepository interface {
|
||||
SubmitVote(ctx context.Context, vote *entities.Vote) error
|
||||
HasUserVoted(ctx context.Context, userID, eventID uuid.UUID) (bool, error)
|
||||
GetVoteResults(ctx context.Context, eventID uuid.UUID) (map[uuid.UUID]int64, error)
|
||||
GetVotedCount(ctx context.Context, eventID uuid.UUID) (int64, error)
|
||||
GetTotalActiveUsersCount(ctx context.Context) (int64, error)
|
||||
}
|
||||
|
||||
type VoteEventServiceImpl struct {
|
||||
@@ -256,3 +258,29 @@ func (s *VoteEventServiceImpl) CheckVoteStatus(ctx context.Context, userID, even
|
||||
|
||||
return response, nil
|
||||
}
|
||||
|
||||
func (s *VoteEventServiceImpl) GetVoteEventDetails(ctx context.Context, eventID uuid.UUID) (*contract.VoteEventDetailsResponse, error) {
|
||||
voteEvent, err := s.voteEventRepo.GetByID(ctx, eventID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
totalParticipants, err := s.voteEventRepo.GetTotalActiveUsersCount(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
totalVoted, err := s.voteEventRepo.GetVotedCount(ctx, eventID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
totalNotVoted := totalParticipants - totalVoted
|
||||
|
||||
return &contract.VoteEventDetailsResponse{
|
||||
VoteEvent: *transformer.VoteEventToContract(voteEvent),
|
||||
TotalParticipants: totalParticipants,
|
||||
TotalVoted: totalVoted,
|
||||
TotalNotVoted: totalNotVoted,
|
||||
}, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user