Update UI result

This commit is contained in:
Aditya Siregar
2025-08-16 01:51:37 +07:00
parent 228f6a78c9
commit 104cd987e9
7 changed files with 109 additions and 16 deletions
+28
View File
@@ -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
}