def lambda_handler()

in src/CustomerApp/payment_method/app.py [0:0]


def lambda_handler(event, context):
    
    if (event['httpMethod'] == 'POST' and event['resource'] == '/order'):
        table_name = os.environ['EncryptionTableName']
        body = json.loads(event['body'])
        credit_card_token = hash_gen.get_uuid()
        print ("printing token value:", credit_card_token)
        ACCOUNT_ID = context.invoked_function_arn.split(":")[4]
        tokenize_request = {}
        tokenize_request['Hash_Key'] = str(credit_card_token)
        tokenize_request['Account_Id'] = ACCOUNT_ID
        tokenize_request['CandidateString'] = body.get('CreditCard')
        response = ddb_encrypt_item.encrypt_item(tokenize_request,table_name)
        
        ## Storing Items in DynamoDB 
        client = boto3.resource('dynamodb')
        cutomer_table = os.environ['CustomerOrderTableName']
        ddbtable = client.Table(cutomer_table)
        
        response = ddbtable.put_item(
                   Item={
                    'CustomerOrder': body.get('CustomerOrder'),
                    'CustomerName': body.get('CustomerName'),
                    'CreditCardToken' : str(credit_card_token),
                    'Address' : body.get('Address')
                        })
        print (response)
        return {
            "statusCode": 200,
            "body": json.dumps({
                "message": "Order Created Successfully",
                "CreditCardToken" : tokenize_request['Hash_Key']
            }),
        }
        
    if (event['httpMethod'] == 'POST' and event['resource'] == '/paybill'):
            table_name = os.environ['EncryptionTableName']
            body = json.loads(event['body'])
            ACCOUNT_ID = context.invoked_function_arn.split(":")[4]
            ## Fetch Hash Key from Customer Order Table
            client = boto3.resource('dynamodb')
            cutomer_table = os.environ['CustomerOrderTableName']
            ddbtable = client.Table(cutomer_table)
            try:
                responseddb = ddbtable.get_item(
                                    Key={
                                            'CustomerOrder' : body.get('CustomerOrder')
                                        })
            except ClientError as e:
                print(e.response['Error']['Message'])
                return {
                    "statusCode": 500,
                     "body": json.dumps({
                    "message": "Payment Submission Failed"
                    }),
                    }
            else:
                item = responseddb['Item']
                print(item)
                index_key = {}
                index_key['Hash_Key'] = item['CreditCardToken']
                index_key['Account_Id'] = ACCOUNT_ID
                response2 = ddb_encrypt_item.get_decrypted_item(index_key,table_name)
                ### Add your code to invoke bill payment API
                ##print(response2)
                return {
                    "statusCode": 200,
                     "body": json.dumps({
                    "message": "Payment Submitted Successfully",
                    "CreditCard Charged" : response2['Item']['CandidateString']
                    }),
                    }
        
    if (event['httpMethod'] == 'GET' and event['resource'] == '/hello'):
            return {
            "statusCode": 200,
            "body": json.dumps({
                "message": "Hello from Lambda!"
            }),
        }