def insert_into_table()

in functions/source/publish-call-metadata/lambda_function.py [0:0]


def insert_into_table(receivedEventAt,transactionId,fromNumber,toNumber,streamingStatus,date_,time_,count):
    ''' 
        Publish transaction details and extraction results to dynamodb
    '''
    if streamingStatus == 'STARTED' and count==0:
        entities={"MemberInfo": [], "ProviderInfo": []}
        publish_to_websocket(transactionId,fromNumber,toNumber,streamingStatus,date_,entities)
        table.put_item(
        Item = {
            'TransactionId': transactionId,
            'LoggedEventOn': receivedEventAt,
            'CallStartTime': time_,
            'FromNumber': fromNumber,
            'ToNumber': toNumber,
            'StreamingStatus': streamingStatus,
            'Date': date_
        }
    )
    if streamingStatus == 'ENDED':
        entities={"memberInfo": [], "providerInfo": []}
        time.sleep(4)
        member_name,member_ID,phone_number,dob=custom_entity_extraction(transactionId)
        member_info = {}
        provider_info = {}
        member_info["memberName"]=member_name
        member_info["memberIDNumber"]=member_ID
        member_info["callbackPhoneNumber"]=phone_number
        member_info["DOB"]=dob
        entities["memberInfo"].append(member_info)
        entities["providerInfo"].append(provider_info)
        publish_to_websocket(transactionId,fromNumber,toNumber,streamingStatus,date_,entities)
        table.update_item(
            Key={'TransactionId': transactionId}, 
            UpdateExpression = 'SET StreamingStatus = :value1, customEntities = :value2', 
            ExpressionAttributeValues = {
                ':value1': streamingStatus,
                ':value2': entities
            })
        # time.sleep(2)
        prefix = f'voiceConnectorToKVS_{transactionId}_'
        keys=get_s3_keys(os.environ['SINGLE_FILES_S3_BUCKET'], prefix)
        s3_path=merge_audios(os.environ['SINGLE_FILES_S3_BUCKET'],keys[0],keys[1])
        update_table_with_merged_s3_path(s3_path,transactionId)
        
    else:
        return