예제 #1
0
def lambda_handler(event, context):
    AWS_PASS, AWS_KEY = get()
    DYNAMODB_REGION = 'us-west-2'

    dynamodb = boto3.resource('dynamodb',
                              aws_secret_access_key=AWS_PASS,
                              aws_access_key_id=AWS_KEY,
                              region_name=DYNAMODB_REGION)

    table = dynamodb.Table('request_table')

    menu_id = event['menu_id']

    try:
        table.update_item(
            Key={'menu_id': menu_id},
            UpdateExpression="SET selection = list_append(selection, :i)",
            ExpressionAttributeValues={
                ':i': ['Vegetable'],
            },
            ReturnValues="UPDATED_NEW")
        return (200, "OK")

    except Exception, e:
        return e, '400'
def lambda_handler(event, context):
    AWS_KEY, AWS_PASS = get()
    DYNAMODB_REGION = 'us-west-2'

    dynamodb = boto3.resource('dynamodb',
                              aws_secret_access_key=AWS_PASS,
                              aws_access_key_id=AWS_KEY,
                              region_name=DYNAMODB_REGION)

    TABLE_NAME = 'request_table'
    table = dynamodb.Table(TABLE_NAME)

    client = boto3.client('dynamodb')

    store_hours = {}
    for item in event["store_hours"]:
        it = dict()
        it["S"] = event["store_hours"][item]
        store_hours[item] = it

    try:
        client.put_item(TableName="request_table",
                        Item={
                            "menu_id": {
                                "S": event["menu_id"]
                            },
                            "store_name": {
                                "S": event["store_name"]
                            },
                            "selection": {
                                "L": format_data(event["selection"], "S")
                            },
                            "size": {
                                "L": format_data(event["size"], "S")
                            },
                            "price": {
                                "L": format_data(event["price"], "N")
                            },
                            "store_hours": {
                                "M": store_hours
                            },
                            "sequence": {
                                "L": [{
                                    "S": "selection"
                                }, {
                                    "S": "size"
                                }]
                            }
                        })
    except Exception, e:
        return 400, e
def lambda_handler(event, context):
    AWS_PASS, AWS_KEY = get()
    DYNAMODB_REGION = 'us-west-2'

    dynamodb = boto3.resource('dynamodb',
                              aws_secret_access_key=AWS_PASS,
                              aws_access_key_id=AWS_KEY,
                              region_name=DYNAMODB_REGION)

    table = dynamodb.Table('request_table')

    menu_id = event['menu_id']

    try:
        response = table.delete_item(Key={'menu_id': menu_id})
        return 200, "OK"

    except:
        return '400'
def lambda_handler(event, context):
    AWS_PASS, AWS_KEY = get()
    DYNAMODB_REGION = 'us-west-2'

    dynamodb = boto3.resource('dynamodb',
                              aws_secret_access_key=AWS_PASS,
                              aws_access_key_id=AWS_KEY,
                              region_name=DYNAMODB_REGION)

    table = dynamodb.Table('request_table')

    response = table.scan()
    data = response['Items']

    menu_id = event['menu_id']

    for item in data:
        if item["menu_id"] == menu_id:
            return item

    return '400'
def lambda_handler(event, context):
    AWS_KEY, AWS_PASS = get()
    DYNAMODB_REGION = 'us-west-2'

    dynamodb = boto3.resource('dynamodb',
                              aws_secret_access_key=AWS_PASS,
                              aws_access_key_id=AWS_KEY,
                              region_name=DYNAMODB_REGION)

    table = dynamodb.Table('request_table')

    menu_id = event['menu_id']
    order_id = event['order_id']
    customer_name = event['customer_name']
    customer_email = event['customer_email']

    client = boto3.client("dynamodb")
    try:
        table.put_item(
            Item={
                "order_id": order_id,
                "menu_id": menu_id,
                "customer_name": customer_name,
                "customer_email": customer_email,
                "order_status": "selecting",
                "order": {
                    "selection": "null",
                    "size": "null",
                    "costs": "null",
                    "order_time": "null"
                }
            })

        msg = "{Message: Hi " + customer_name + ",please choose one of these selection:  1. Cheese, 2. Pepperoni, 3.Vegetable.}"
        return 200, "OK", msg
    except Exception, e:
        return 400, e
def lambda_handler(event, context):
    AWS_KEY, AWS_PASS = get()
    DYNAMODB_REGION = 'us-west-2'

    pizza_type_map = {"1": "Cheese", "2": "Pepperoni", "3": "Vegetable"}
    pizza_size_map = {"1": "Slide", "2": "Small", "3": "Medium", "4": "Large", "5": "X-Large"}
    pizza_prize_map = {"Slide": "3.50", "Small": "7.0", "Medium": "10.0", "Large": "15.00", "X-Large": "20.00"}

    dynamodb = boto3.resource('dynamodb',
                              aws_secret_access_key=AWS_PASS,
                              aws_access_key_id=AWS_KEY,
                              region_name=DYNAMODB_REGION
                              )

    table = dynamodb.Table('user_order_table')

    order_id = event['order_id']  # 'uuid'
    user_selection = event['input']

    response = table.scan()
    data = response['Items']

    for item in data:
        if item['order_id'] == order_id:
            res = item

    try:

        if res['order_status'] == 'selecting':
            table.update_item(
                Key={'order_id': order_id
                     },
                UpdateExpression="SET order_status = :val1",
                ExpressionAttributeValues={
                    ':val1': 'selecting_type',
                }
            )

            pizza_type = pizza_type_map[user_selection]
            table.update_item(
                Key={'order_id': order_id
                     },
                UpdateExpression="SET selection = :val1",
                ExpressionAttributeValues={
                    ':val1': pizza_type,
                }
            )

            msg = "{Message: Which size do you want? 1. Slide, 2. Small, 3. Medium, 4. Large, 5. X-Large "
            return 200, "OK", msg

        if res['order_status'] == 'selecting_type':
            table.update_item(
                Key={'order_id': order_id
                     },
                UpdateExpression="SET order_status = :val1",
                ExpressionAttributeValues={
                    ':val1': 'selecting_size',
                }
            )
            pizza_size = pizza_size_map[user_selection]
            table.update_item(
                Key={'order_id': order_id
                     },
                UpdateExpression="SET size = :val1",
                ExpressionAttributeValues={
                    ':val1': pizza_size,
                }
            )

            price = pizza_prize_map[pizza_size]
            table.update_item(
                Key={'order_id': order_id
                     },
                UpdateExpression="SET costs = :val1",
                ExpressionAttributeValues={
                    ':val1': price,
                }
            )

            msg = "{Message: Your order costs " + price + "$ We will email you when the order is ready. Thank you!"
            return 200, "OK", msg

        if res['order_status'] == 'selecting_size':
            table.update_item(
                Key={'order_id': order_id
                     },
                UpdateExpression="SET order_status = :val1",
                ExpressionAttributeValues={
                    ':val1': 'processing',
                }
            )

            out = table.get_item(
                Key={
                    'order_id': order_id
                }
            )
            return 200, "OK", out

    except Exception, e:
        return 400, e