def processRecords()

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