def lambda_handler()

in CBHelper-evaluateCallBack/lambda_function.py [0:0]


def lambda_handler(event, context):
    print(event)

    CONTACTS_TABLE= os.environ['CONTACTS_TABLE']
    contactPhone = str(event['Details']['ContactData']['CustomerEndpoint']['Address'])
    
    CONFIG_SECRET= os.environ['CONFIG_SECRET']
    connect_config=json.loads(get_config(CONFIG_SECRET))
    
    instanceId = connect_config['CONNECT_INSTANCE_ID']
    queueId =connect_config['CONNECT_QUEUE_ID']

    timezone = str(event['Details']['ContactData']['Attributes']['timezone'])
    
    if('minimumperiod' in event['Details']['ContactData']['Attributes']): MinTimeWindow = int(event['Details']['ContactData']['Attributes']['minimumperiod'])
    else: MinTimeWindow = 60
    
    if('maximumcbcontacts' in event['Details']['ContactData']['Attributes']): MaxContacts = int(event['Details']['ContactData']['Attributes']['maximumcbcontacts'])
    else: MaxContacts = 10

    if('slopedperiod' in event['Details']['ContactData']['Attributes']): slopedPeriod = int(event['Details']['ContactData']['Attributes']['slopedperiod'])
    else: slopedPeriod = True
    
    print("MaxContacts:" + str(MaxContacts))
    print("MinTimeWindow:" + str(MinTimeWindow))
    print("MinTimeWindow:" + str(slopedPeriod))

    queuedContacts=get_queued_contacts(instanceId,queueId)
    
    print("Contacts in Queue:" + str(queuedContacts))
    
    if(phone_lookup(contactPhone, CONTACTS_TABLE)):
        alreadyQueued=True
    else:
        alreadyQueued=False
    
    closing_time=get_closing_time(instanceId, queueId)

    if(not(alreadyQueued) and queuedContacts <= MaxContacts):
        response ={"cbTier" : get_allowed_tier(MinTimeWindow,closing_time['Hours'],closing_time['Minutes'],timezone, slopedPeriod )}
    else:
        response ={"cbTier" : "notvalid"}
    return response