Exemplo n.º 1
0
    def findUserById(self, id):
        # save to dynamodb
        dynamodb = boto3.resource('dynamodb', region_name='us-east-1')
        table = dynamodb.Table(
            aws_helper.getEnvVar(BoiBotEnvVars.ALEXA_USER_TABLE))
        print('querying for user: '******'found ' + str(response))
            if 'Items' in response.keys() and len(response['Items']) > 0:
                user = response['Items'][0]
        else:
            response = table.get_item(Key={
                aws_helper.getEnvVar(BoiBotEnvVars.ALEXA_USER_ID_COLUMN):
                id
            })
            print('found ' + str(response))
            user = response['Item']

        self.decryptFields(user)
        return user
Exemplo n.º 2
0
 def validateRequest(self, request, event):
     # Make sure the request is not old (per Amazon standard)
     if aws_helper.getEnvVar(
             'TestMode') == 'true' or self.check_request_freshness(event):
         # Check that the request was signed properly
         if aws_helper.getEnvVar(
                 'TestMode') == 'true' or aws_sig_checker.checkSignature(
                     request):
             return True
         else:
             print('Signature is NOT valid!')
     else:
         print('warning, request is old!!')
     return False
Exemplo n.º 3
0
    def __getLexResponse(self, serviceResponses):
        if self.lexResponse == None:
            # speak to lex
            user = '******' + str(self.userSession.get('sessionId', '0'))
            user = (user + '.anonymous') if self.jwt == None else user
            print('speaking to lex as user: '******'Intent ' + lex_helper.getIntent(self.lexResponse) +
                      ' requires authorization.')
                raise Exception('Authorization required')

        return self.lexResponse
Exemplo n.º 4
0
 def getAllResponseTemplates(self):
     intentName = self.fulfillmentData['intent']
     boiResponses = aws_helper.findItemsByKey(
         intentName, 'intent',
         aws_helper.getEnvVar(BotActionEnvVars.BOI_RESPONSE_TABLE),
         'priority')
     matchingResponses = OrderedDict()
     for resp in boiResponses:
         matchingResponses[(resp.get('rule', 'default'))] = resp.get(
             'response', 'No response key.')
     return matchingResponses
Exemplo n.º 5
0
 def getAppUrlPrefix(self):
     return aws_helper.getEnvVar('AppUrlPrefix')