def lambda_handler()

in code/lab-4/payment_charge/charge.py [0:0]


def lambda_handler(event, context):
    if not is_charge_request_valid(event):
        raise ValueError('Invalid charge request')

    if event['customerId'].endswith('fail_auth'):
        raise PaymentAuthException('Forced auth transaction failure', event)

    if event['customerId'].endswith('fail_charge'):
        raise PaymentChargeException('Forced charge transaction failure', event)

    auth_code = provider_auth(event['fareAmount'], event['cc'], event['expiryDate'], event['cvv'])

    transaction_id = provider_charge(auth_code, event['fareAmount'])

    charge_response = {
        "customerId": event['customerId'],
        "fareId": event['fareId'],
        "fareAmount": event['fareAmount'],
        "chargeToken": auth_code,
        "chargeId": transaction_id
    }

    return charge_response