in backend/lambda/vote-stream/lambda.py [0:0]
def processRecords(records):
questionVoteDeltaMap = {}
for r in records:
eventName = r['eventName']
imageToDeserialize = r['dynamodb']['OldImage'] if eventName == 'REMOVE' else r['dynamodb']['NewImage']
deserializedImage = {k: deserializer.deserialize(v) for k,v in imageToDeserialize.items()}
questionId = deserializedImage['QuestionId']
channelArn = deserializedImage['ChannelArn']
if questionId in questionVoteDeltaMap:
if eventName == 'REMOVE':
questionVoteDeltaMap[questionId]['voteDelta'] -= 1
elif eventName == 'INSERT':
questionVoteDeltaMap[questionId]['voteDelta'] += 1
else:
if eventName == 'REMOVE':
questionVoteDeltaMap[questionId] = {'voteDelta': -1, 'channelArn': channelArn}
elif eventName == 'INSERT':
questionVoteDeltaMap[questionId] = {'voteDelta': 1, 'channelArn': channelArn}
return questionVoteDeltaMap