def lambdaHandler()

in backend/lambda/vote-service/lambda.py [0:0]


def lambdaHandler(event, context):
    print('Received event: ' + json.dumps(event, indent=2))
    
    userId = event['requestContext']['authorizer']['claims']['sub']
    try:
        body = json.loads(event['body'])
        if event['requestContext']['resourcePath'] == '/addVote':
            if not checkIfQuestionExists(body['channelArn'], body['questionId']):
                return {'statusCode': '400'}
                
            voteTable.put_item(Item={
                'UserId': userId,
                'QuestionId': body['questionId'],
                'ChannelArn': body['channelArn'],
            })
        elif event['requestContext']['resourcePath'] == '/deleteVote':
            if not checkIfQuestionExists(body['channelArn'], body['questionId']):
                return {'statusCode': '400'}
                
            voteTable.delete_item(Key={
                'UserId': userId,
                'QuestionId': body['questionId'],
            })
        elif event['requestContext']['resourcePath'] == '/getVotes':
            response = voteTable.query(
                KeyConditionExpression=Key('UserId').eq(userId),
                ProjectionExpression='QuestionId',
                FilterExpression=Attr('ChannelArn').eq(body['channelArn']),
            )
            print(response)
            return {
                'statusCode': '200',
                'body': json.dumps(response['Items']),
            }
        else:
            return {'statusCode': '400'}
    except Exception as e:
        print(e)
        return {'statusCode': '500'}
    else:
        return {'statusCode': '200'}