13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'app/services/spree_cm_commissioner/vote_counters/audit_counters.rb', line 13
def call(voting_session_id:)
@voting_session_id = voting_session_id
db_counts = SpreeCmCommissioner::Vote.for_session(voting_session_id)
.group(:contestant_id)
.sum(:quantity)
per_contestant_result = SpreeCmCommissioner::VoteCounters::PerContestantCounter
.call(voting_session_id: voting_session_id)
return failure(nil, per_contestant_result.error.value) if per_contestant_result.failure?
redis_counts = per_contestant_result.value[:counts]
redis_counts.each do |contestant_id, redis_count|
db_count = db_counts[contestant_id] || 0
next if redis_count == db_count
CmAppLogger.log(
label: 'VoteCounter mismatch',
data: {
voting_session_id: voting_session_id,
contestant_id: contestant_id,
redis_count: redis_count,
db_count: db_count
}
)
end
success(nil)
end
|