code/lab-1/unicorn-management-service/app.py [7:68]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TABLE_NAME = os.environ['TABLE_NAME']
TOPIC_ARN = os.environ['TOPIC_ARN']

config = Config(connect_timeout=5, read_timeout=5, retries={'max_attempts': 1})
dynamodb = boto3.client('dynamodb', config=config)
# sns = boto3.client('sns', config=config)

def is_invalid(request):
    # TODO: validate request
    return False

def lambda_handler(event, context):
    print('EVENT: {}'.format(json.dumps(event)))

    request = json.loads(event['body'])
    print('The request loaded ' + str(request))

    if is_invalid(request):
        return {
            'statusCode': 400,
            'body': json.dumps({})
        }

    print('Request is valid!')

    id = str(uuid.uuid4())
    request['id'] = id

    response = dynamodb.put_item(
        TableName=TABLE_NAME,
        Item={
            'id': {'S': id},
            'from': {'S': request['from']},
            'to': {'S': request['to']},
            'duration': {'N': str(request['duration'])},
            'distance': {'N': str(request['distance'])},
            'customer': {'S': request['customer']},
            'fare': {'N': str(request['fare'])}
        }
    )

    # response = sns.publish(
    #     TopicArn=TOPIC_ARN,
    #     Message=json.dumps(request),
    #     MessageAttributes = {
    #         'fare': {
    #            'DataType': 'Number',
    #            'StringValue': str(request['fare'])
    #         },
    #         'distance': {
    #            'DataType': 'Number',
    #            'StringValue': str(request['distance'])
    #         }
    #    }
    # )

    return {
        'statusCode': 201,
        'body': json.dumps({
            "id": id
        })
    }
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



code/lab-2/unicorn-management-service/app.py [7:68]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TABLE_NAME = os.environ['TABLE_NAME']
TOPIC_ARN = os.environ['TOPIC_ARN']

config = Config(connect_timeout=5, read_timeout=5, retries={'max_attempts': 1})
dynamodb = boto3.client('dynamodb', config=config)
#sns = boto3.client('sns', config=config)

def is_invalid(request):
    # TODO: validate request
    return False

def lambda_handler(event, context):
    print('EVENT: {}'.format(json.dumps(event)))

    request = json.loads(event['body'])
    print('The request loaded ' + str(request))

    if is_invalid(request):
        return {
            'statusCode': 400,
            'body': json.dumps({})
        }

    print('Request is valid!')

    id = str(uuid.uuid4())
    request['id'] = id

    response = dynamodb.put_item(
        TableName=TABLE_NAME,
        Item={
            'id': {'S': id},
            'from': {'S': request['from']},
            'to': {'S': request['to']},
            'duration': {'N': str(request['duration'])},
            'distance': {'N': str(request['distance'])},
            'customer': {'S': request['customer']},
            'fare': {'N': str(request['fare'])}
        }
    )

#    response = sns.publish(
#        TopicArn=TOPIC_ARN,
#        Message=json.dumps(request),
#        MessageAttributes = {
#            'fare': {
#                'DataType': 'Number',
#                'StringValue': str(request['fare'])
#            },
#            'distance': {
#                'DataType': 'Number',
#                'StringValue': str(request['distance'])
#            }
#        }
#    )

    return {
        'statusCode': 201,
        'body': json.dumps({
            "id": id
        })
    }
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



