'use strict';

const aws = require('aws-sdk');
const s3 = new aws.S3();

console.log('Loading function');

exports.handler = (event, context, callback) => {

    console.log('Received event:', JSON.stringify(event, null, 2));

    var requestbody = JSON.parse(event.body);

    var lunchdate = requestbody.result.parameters.date;

    const bucket = 'mylunchmenu';
    const key = 'menu.txt';
    const params = {
        Bucket: bucket,
        Key: key,
    };
    
    s3.getObject(params, (err, data) => {
        if (err) {
            console.log(err);
        } else {
            console.log('S3 Content:', data.Body.toString('utf-8'));
            
            var lookupJson = JSON.parse(data.Body);
            
            var arrayFound = lookupJson.days.filter(function(day) {
                return day.date == lunchdate;
            }); 

            var menu;
            
            if (arrayFound.length > 0)
            {
                menu = arrayFound[0].menu;
            }
            else
            {
                menu = "No menu found";
            }
            
            var responseCode = 200;

            var responseBody = {
                speech: "On " + lunchdate + ", " + menu,
                displayText: "On " + lunchdate + ", " + menu,
                source: "source"
            };
        
            var response = {
                statusCode: responseCode,
                headers: {
                },
                body: JSON.stringify(responseBody)
            };
            
            console.log('Returned event:', JSON.stringify(responseBody));
            
            context.succeed(response);    
        }
    });
    
};