
from __future__ import print_function
import boto3
import json

# --------------- Helpers that build all of the responses ----------------------

def build_speechlet_response(title, output, reprompt_text, should_end_session):
    return {
        'outputSpeech': {
            'type': 'PlainText',
            'text': output
        },
        'card': {
            'type': 'Simple',
            'title': "SessionSpeechlet - " + title,
            'content': "SessionSpeechlet - " + output
        },
        'reprompt': {
            'outputSpeech': {
                'type': 'PlainText',
                'text': reprompt_text
            }
        },
        'shouldEndSession': should_end_session
    }


def build_response(session_attributes, speechlet_response):
    return {
        'version': '1.0',
        'sessionAttributes': session_attributes,
        'response': speechlet_response
    }


# --------------- Functions that control the skill's behavior ------------------

def get_welcome_response():

    dynamodb = boto3.resource('dynamodb',region_name='us-east-1')
    # set dynamo db table and location
    table = dynamodb.Table('guests')
    response = table.scan()
    greetings =' '
    for i in response['Items']:
        f = i['greeting']
        g = i['guest']
        greetings = greetings + f +'\n'
        table.delete_item(
            Key={
                'guest': g
            }
        )
    print (greetings)


    session_attributes = {}
    card_title = "Welcome"
    speech_output = greetings

    # If the user either does not reply to the welcome message or says something
    # that is not understood, they will be prompted again with this text.

    #Set initial greeting
    reprompt_text = "Welcome to Turing Group! "
    should_end_session = False
    return build_response(session_attributes, build_speechlet_response(
        card_title, speech_output, reprompt_text, should_end_session))


def handle_session_end_request():
    card_title = "Session Ended"
    #Set trailing greeting
    speech_output = "Welcome to Turing Group! "
    # Setting this to true ends the session and exits the skill.
    should_end_session = True
    return build_response({}, build_speechlet_response(
        card_title, speech_output, None, should_end_session))



# --------------- Events ------------------

def on_session_started(session_started_request, session):
    """ Called when the session starts """

    print("on_session_started requestId=" + session_started_request['requestId']
          + ", sessionId=" + session['sessionId'])


def on_launch(launch_request, session):
    """ Called when the user launches the skill without specifying what they
    want
    """

    print("on_launch requestId=" + launch_request['requestId'] +
          ", sessionId=" + session['sessionId'])
    # Dispatch to your skill's launch
    return get_welcome_response()


def on_intent(intent_request, session):
    """ Called when the user specifies an intent for this skill """

    print("on_intent requestId=" + intent_request['requestId'] +
          ", sessionId=" + session['sessionId'])

    intent = intent_request['intent']
    intent_name = intent_request['intent']['name']

    # Dispatch to your skill's intent handlers
    if intent_name == "HelloWorldIntent":
        return handle_session_end_request()
    elif intent_name == "AMAZON.CancelIntent" or intent_name == "AMAZON.StopIntent":
        return handle_session_end_request()
    else:
        raise ValueError("Invalid intent")


def on_session_ended(session_ended_request, session):
    """ Called when the user ends the session.

    Is not called when the skill returns should_end_session=true
    """
    print("on_session_ended requestId=" + session_ended_request['requestId'] +
          ", sessionId=" + session['sessionId'])
    # add cleanup logic here


# --------------- Main handler ------------------


def lambda_handler(event, context):
    """ Route the incoming request based on type (LaunchRequest, IntentRequest,
    etc.) The JSON body of the request is provided in the event parameter.
    """
    print("event.session.application.applicationId=" +
          event['session']['application']['applicationId'])

    """
    Uncomment this if statement and populate with your skill's application ID to
    prevent someone else from configuring a skill that sends requests to this
    function.
    """
    if (event['session']['application']['applicationId'] !=
            "amzn1.ask.skill.xxxx"):
            #Set Alexa Skill ID
        raise ValueError("Invalid Application ID")

    if event['session']['new']:
        on_session_started({'requestId': event['request']['requestId']},
                           event['session'])

    if event['request']['type'] == "LaunchRequest":
        return on_launch(event['request'], event['session'])
    elif event['request']['type'] == "IntentRequest":
        return on_intent(event['request'], event['session'])
    elif event['request']['type'] == "SessionEndedRequest":
        return on_session_ended(event['request'], event['session'])

70189e5e29721ac313459bce4b86ce8ecbba74cc
<mask token>


def build_speechlet_response(title, output, reprompt_text, should_end_session):
    return {'outputSpeech': {'type': 'PlainText', 'text': output}, 'card':
        {'type': 'Simple', 'title': 'SessionSpeechlet - ' + title,
        'content': 'SessionSpeechlet - ' + output}, 'reprompt': {
        'outputSpeech': {'type': 'PlainText', 'text': reprompt_text}},
        'shouldEndSession': should_end_session}


def build_response(session_attributes, speechlet_response):
    return {'version': '1.0', 'sessionAttributes': session_attributes,
        'response': speechlet_response}


def get_welcome_response():
    dynamodb = boto3.resource('dynamodb', region_name='us-east-1')
    table = dynamodb.Table('guests')
    response = table.scan()
    greetings = ' '
    for i in response['Items']:
        f = i['greeting']
        g = i['guest']
        greetings = greetings + f + '\n'
        table.delete_item(Key={'guest': g})
    print(greetings)
    session_attributes = {}
    card_title = 'Welcome'
    speech_output = greetings
    reprompt_text = 'Welcome to Turing Group! '
    should_end_session = False
    return build_response(session_attributes, build_speechlet_response(
        card_title, speech_output, reprompt_text, should_end_session))


def handle_session_end_request():
    card_title = 'Session Ended'
    speech_output = 'Welcome to Turing Group! '
    should_end_session = True
    return build_response({}, build_speechlet_response(card_title,
        speech_output, None, should_end_session))


def on_session_started(session_started_request, session):
    """ Called when the session starts """
    print('on_session_started requestId=' + session_started_request[
        'requestId'] + ', sessionId=' + session['sessionId'])


<mask token>


def on_session_ended(session_ended_request, session):
    """ Called when the user ends the session.

    Is not called when the skill returns should_end_session=true
    """
    print('on_session_ended requestId=' + session_ended_request['requestId'
        ] + ', sessionId=' + session['sessionId'])


def lambda_handler(event, context):
    """ Route the incoming request based on type (LaunchRequest, IntentRequest,
    etc.) The JSON body of the request is provided in the event parameter.
    """
    print('event.session.application.applicationId=' + event['session'][
        'application']['applicationId'])
    """
    Uncomment this if statement and populate with your skill's application ID to
    prevent someone else from configuring a skill that sends requests to this
    function.
    """
    if event['session']['application']['applicationId'
        ] != 'amzn1.ask.skill.xxxx':
        raise ValueError('Invalid Application ID')
    if event['session']['new']:
        on_session_started({'requestId': event['request']['requestId']},
            event['session'])
    if event['request']['type'] == 'LaunchRequest':
        return on_launch(event['request'], event['session'])
    elif event['request']['type'] == 'IntentRequest':
        return on_intent(event['request'], event['session'])
    elif event['request']['type'] == 'SessionEndedRequest':
        return on_session_ended(event['request'], event['session'])

<mask token>


def build_speechlet_response(title, output, reprompt_text, should_end_session):
    return {'outputSpeech': {'type': 'PlainText', 'text': output}, 'card':
        {'type': 'Simple', 'title': 'SessionSpeechlet - ' + title,
        'content': 'SessionSpeechlet - ' + output}, 'reprompt': {
        'outputSpeech': {'type': 'PlainText', 'text': reprompt_text}},
        'shouldEndSession': should_end_session}


def build_response(session_attributes, speechlet_response):
    return {'version': '1.0', 'sessionAttributes': session_attributes,
        'response': speechlet_response}


def get_welcome_response():
    dynamodb = boto3.resource('dynamodb', region_name='us-east-1')
    table = dynamodb.Table('guests')
    response = table.scan()
    greetings = ' '
    for i in response['Items']:
        f = i['greeting']
        g = i['guest']
        greetings = greetings + f + '\n'
        table.delete_item(Key={'guest': g})
    print(greetings)
    session_attributes = {}
    card_title = 'Welcome'
    speech_output = greetings
    reprompt_text = 'Welcome to Turing Group! '
    should_end_session = False
    return build_response(session_attributes, build_speechlet_response(
        card_title, speech_output, reprompt_text, should_end_session))


def handle_session_end_request():
    card_title = 'Session Ended'
    speech_output = 'Welcome to Turing Group! '
    should_end_session = True
    return build_response({}, build_speechlet_response(card_title,
        speech_output, None, should_end_session))


def on_session_started(session_started_request, session):
    """ Called when the session starts """
    print('on_session_started requestId=' + session_started_request[
        'requestId'] + ', sessionId=' + session['sessionId'])


def on_launch(launch_request, session):
    """ Called when the user launches the skill without specifying what they
    want
    """
    print('on_launch requestId=' + launch_request['requestId'] +
        ', sessionId=' + session['sessionId'])
    return get_welcome_response()


<mask token>


def on_session_ended(session_ended_request, session):
    """ Called when the user ends the session.

    Is not called when the skill returns should_end_session=true
    """
    print('on_session_ended requestId=' + session_ended_request['requestId'
        ] + ', sessionId=' + session['sessionId'])


def lambda_handler(event, context):
    """ Route the incoming request based on type (LaunchRequest, IntentRequest,
    etc.) The JSON body of the request is provided in the event parameter.
    """
    print('event.session.application.applicationId=' + event['session'][
        'application']['applicationId'])
    """
    Uncomment this if statement and populate with your skill's application ID to
    prevent someone else from configuring a skill that sends requests to this
    function.
    """
    if event['session']['application']['applicationId'
        ] != 'amzn1.ask.skill.xxxx':
        raise ValueError('Invalid Application ID')
    if event['session']['new']:
        on_session_started({'requestId': event['request']['requestId']},
            event['session'])
    if event['request']['type'] == 'LaunchRequest':
        return on_launch(event['request'], event['session'])
    elif event['request']['type'] == 'IntentRequest':
        return on_intent(event['request'], event['session'])
    elif event['request']['type'] == 'SessionEndedRequest':
        return on_session_ended(event['request'], event['session'])

<mask token>


def build_speechlet_response(title, output, reprompt_text, should_end_session):
    return {'outputSpeech': {'type': 'PlainText', 'text': output}, 'card':
        {'type': 'Simple', 'title': 'SessionSpeechlet - ' + title,
        'content': 'SessionSpeechlet - ' + output}, 'reprompt': {
        'outputSpeech': {'type': 'PlainText', 'text': reprompt_text}},
        'shouldEndSession': should_end_session}


def build_response(session_attributes, speechlet_response):
    return {'version': '1.0', 'sessionAttributes': session_attributes,
        'response': speechlet_response}


def get_welcome_response():
    dynamodb = boto3.resource('dynamodb', region_name='us-east-1')
    table = dynamodb.Table('guests')
    response = table.scan()
    greetings = ' '
    for i in response['Items']:
        f = i['greeting']
        g = i['guest']
        greetings = greetings + f + '\n'
        table.delete_item(Key={'guest': g})
    print(greetings)
    session_attributes = {}
    card_title = 'Welcome'
    speech_output = greetings
    reprompt_text = 'Welcome to Turing Group! '
    should_end_session = False
    return build_response(session_attributes, build_speechlet_response(
        card_title, speech_output, reprompt_text, should_end_session))


def handle_session_end_request():
    card_title = 'Session Ended'
    speech_output = 'Welcome to Turing Group! '
    should_end_session = True
    return build_response({}, build_speechlet_response(card_title,
        speech_output, None, should_end_session))


def on_session_started(session_started_request, session):
    """ Called when the session starts """
    print('on_session_started requestId=' + session_started_request[
        'requestId'] + ', sessionId=' + session['sessionId'])


def on_launch(launch_request, session):
    """ Called when the user launches the skill without specifying what they
    want
    """
    print('on_launch requestId=' + launch_request['requestId'] +
        ', sessionId=' + session['sessionId'])
    return get_welcome_response()


def on_intent(intent_request, session):
    """ Called when the user specifies an intent for this skill """
    print('on_intent requestId=' + intent_request['requestId'] +
        ', sessionId=' + session['sessionId'])
    intent = intent_request['intent']
    intent_name = intent_request['intent']['name']
    if intent_name == 'HelloWorldIntent':
        return handle_session_end_request()
    elif intent_name == 'AMAZON.CancelIntent' or intent_name == 'AMAZON.StopIntent':
        return handle_session_end_request()
    else:
        raise ValueError('Invalid intent')


def on_session_ended(session_ended_request, session):
    """ Called when the user ends the session.

    Is not called when the skill returns should_end_session=true
    """
    print('on_session_ended requestId=' + session_ended_request['requestId'
        ] + ', sessionId=' + session['sessionId'])


def lambda_handler(event, context):
    """ Route the incoming request based on type (LaunchRequest, IntentRequest,
    etc.) The JSON body of the request is provided in the event parameter.
    """
    print('event.session.application.applicationId=' + event['session'][
        'application']['applicationId'])
    """
    Uncomment this if statement and populate with your skill's application ID to
    prevent someone else from configuring a skill that sends requests to this
    function.
    """
    if event['session']['application']['applicationId'
        ] != 'amzn1.ask.skill.xxxx':
        raise ValueError('Invalid Application ID')
    if event['session']['new']:
        on_session_started({'requestId': event['request']['requestId']},
            event['session'])
    if event['request']['type'] == 'LaunchRequest':
        return on_launch(event['request'], event['session'])
    elif event['request']['type'] == 'IntentRequest':
        return on_intent(event['request'], event['session'])
    elif event['request']['type'] == 'SessionEndedRequest':
        return on_session_ended(event['request'], event['session'])

from __future__ import print_function
import boto3
import json


def build_speechlet_response(title, output, reprompt_text, should_end_session):
    return {'outputSpeech': {'type': 'PlainText', 'text': output}, 'card':
        {'type': 'Simple', 'title': 'SessionSpeechlet - ' + title,
        'content': 'SessionSpeechlet - ' + output}, 'reprompt': {
        'outputSpeech': {'type': 'PlainText', 'text': reprompt_text}},
        'shouldEndSession': should_end_session}


def build_response(session_attributes, speechlet_response):
    return {'version': '1.0', 'sessionAttributes': session_attributes,
        'response': speechlet_response}


def get_welcome_response():
    dynamodb = boto3.resource('dynamodb', region_name='us-east-1')
    table = dynamodb.Table('guests')
    response = table.scan()
    greetings = ' '
    for i in response['Items']:
        f = i['greeting']
        g = i['guest']
        greetings = greetings + f + '\n'
        table.delete_item(Key={'guest': g})
    print(greetings)
    session_attributes = {}
    card_title = 'Welcome'
    speech_output = greetings
    reprompt_text = 'Welcome to Turing Group! '
    should_end_session = False
    return build_response(session_attributes, build_speechlet_response(
        card_title, speech_output, reprompt_text, should_end_session))


def handle_session_end_request():
    card_title = 'Session Ended'
    speech_output = 'Welcome to Turing Group! '
    should_end_session = True
    return build_response({}, build_speechlet_response(card_title,
        speech_output, None, should_end_session))


def on_session_started(session_started_request, session):
    """ Called when the session starts """
    print('on_session_started requestId=' + session_started_request[
        'requestId'] + ', sessionId=' + session['sessionId'])


def on_launch(launch_request, session):
    """ Called when the user launches the skill without specifying what they
    want
    """
    print('on_launch requestId=' + launch_request['requestId'] +
        ', sessionId=' + session['sessionId'])
    return get_welcome_response()


def on_intent(intent_request, session):
    """ Called when the user specifies an intent for this skill """
    print('on_intent requestId=' + intent_request['requestId'] +
        ', sessionId=' + session['sessionId'])
    intent = intent_request['intent']
    intent_name = intent_request['intent']['name']
    if intent_name == 'HelloWorldIntent':
        return handle_session_end_request()
    elif intent_name == 'AMAZON.CancelIntent' or intent_name == 'AMAZON.StopIntent':
        return handle_session_end_request()
    else:
        raise ValueError('Invalid intent')


def on_session_ended(session_ended_request, session):
    """ Called when the user ends the session.

    Is not called when the skill returns should_end_session=true
    """
    print('on_session_ended requestId=' + session_ended_request['requestId'
        ] + ', sessionId=' + session['sessionId'])


def lambda_handler(event, context):
    """ Route the incoming request based on type (LaunchRequest, IntentRequest,
    etc.) The JSON body of the request is provided in the event parameter.
    """
    print('event.session.application.applicationId=' + event['session'][
        'application']['applicationId'])
    """
    Uncomment this if statement and populate with your skill's application ID to
    prevent someone else from configuring a skill that sends requests to this
    function.
    """
    if event['session']['application']['applicationId'
        ] != 'amzn1.ask.skill.xxxx':
        raise ValueError('Invalid Application ID')
    if event['session']['new']:
        on_session_started({'requestId': event['request']['requestId']},
            event['session'])
    if event['request']['type'] == 'LaunchRequest':
        return on_launch(event['request'], event['session'])
    elif event['request']['type'] == 'IntentRequest':
        return on_intent(event['request'], event['session'])
    elif event['request']['type'] == 'SessionEndedRequest':
        return on_session_ended(event['request'], event['session'])


from __future__ import print_function
import boto3
import json

# --------------- Helpers that build all of the responses ----------------------

def build_speechlet_response(title, output, reprompt_text, should_end_session):
    return {
        'outputSpeech': {
            'type': 'PlainText',
            'text': output
        },
        'card': {
            'type': 'Simple',
            'title': "SessionSpeechlet - " + title,
            'content': "SessionSpeechlet - " + output
        },
        'reprompt': {
            'outputSpeech': {
                'type': 'PlainText',
                'text': reprompt_text
            }
        },
        'shouldEndSession': should_end_session
    }


def build_response(session_attributes, speechlet_response):
    return {
        'version': '1.0',
        'sessionAttributes': session_attributes,
        'response': speechlet_response
    }


# --------------- Functions that control the skill's behavior ------------------

def get_welcome_response():

    dynamodb = boto3.resource('dynamodb',region_name='us-east-1')
    # set dynamo db table and location
    table = dynamodb.Table('guests')
    response = table.scan()
    greetings =' '
    for i in response['Items']:
        f = i['greeting']
        g = i['guest']
        greetings = greetings + f +'\n'
        table.delete_item(
            Key={
                'guest': g
            }
        )
    print (greetings)


    session_attributes = {}
    card_title = "Welcome"
    speech_output = greetings

    # If the user either does not reply to the welcome message or says something
    # that is not understood, they will be prompted again with this text.

    #Set initial greeting
    reprompt_text = "Welcome to Turing Group! "
    should_end_session = False
    return build_response(session_attributes, build_speechlet_response(
        card_title, speech_output, reprompt_text, should_end_session))


def handle_session_end_request():
    card_title = "Session Ended"
    #Set trailing greeting
    speech_output = "Welcome to Turing Group! "
    # Setting this to true ends the session and exits the skill.
    should_end_session = True
    return build_response({}, build_speechlet_response(
        card_title, speech_output, None, should_end_session))



# --------------- Events ------------------

def on_session_started(session_started_request, session):
    """ Called when the session starts """

    print("on_session_started requestId=" + session_started_request['requestId']
          + ", sessionId=" + session['sessionId'])


def on_launch(launch_request, session):
    """ Called when the user launches the skill without specifying what they
    want
    """

    print("on_launch requestId=" + launch_request['requestId'] +
          ", sessionId=" + session['sessionId'])
    # Dispatch to your skill's launch
    return get_welcome_response()


def on_intent(intent_request, session):
    """ Called when the user specifies an intent for this skill """

    print("on_intent requestId=" + intent_request['requestId'] +
          ", sessionId=" + session['sessionId'])

    intent = intent_request['intent']
    intent_name = intent_request['intent']['name']

    # Dispatch to your skill's intent handlers
    if intent_name == "HelloWorldIntent":
        return handle_session_end_request()
    elif intent_name == "AMAZON.CancelIntent" or intent_name == "AMAZON.StopIntent":
        return handle_session_end_request()
    else:
        raise ValueError("Invalid intent")


def on_session_ended(session_ended_request, session):
    """ Called when the user ends the session.

    Is not called when the skill returns should_end_session=true
    """
    print("on_session_ended requestId=" + session_ended_request['requestId'] +
          ", sessionId=" + session['sessionId'])
    # add cleanup logic here


# --------------- Main handler ------------------


def lambda_handler(event, context):
    """ Route the incoming request based on type (LaunchRequest, IntentRequest,
    etc.) The JSON body of the request is provided in the event parameter.
    """
    print("event.session.application.applicationId=" +
          event['session']['application']['applicationId'])

    """
    Uncomment this if statement and populate with your skill's application ID to
    prevent someone else from configuring a skill that sends requests to this
    function.
    """
    if (event['session']['application']['applicationId'] !=
            "amzn1.ask.skill.xxxx"):
            #Set Alexa Skill ID
        raise ValueError("Invalid Application ID")

    if event['session']['new']:
        on_session_started({'requestId': event['request']['requestId']},
                           event['session'])

    if event['request']['type'] == "LaunchRequest":
        return on_launch(event['request'], event['session'])
    elif event['request']['type'] == "IntentRequest":
        return on_intent(event['request'], event['session'])
    elif event['request']['type'] == "SessionEndedRequest":
        return on_session_ended(event['request'], event['session'])
