# AX91 Migration using the Old Code Process - Use this [query](https://metabase-bbps.setu.co/question/285-biller-details-by-biller-id?bbps_biller_id=BLVFEE000KAR04) to get the config details such as baseURL, settlement details , report details. - Search for the folder in which the code is present ( API Gateway > Lambda > Code ) - Create a new branch from `direct-lambda-migration-ax91` . - if the url patter is not : ```python urlPattern = r"^/(.*)/bills/(.*)/modules/(.*)/bbps/bills/(.*)$" ``` then change it to something like : ```python urlPattern = r"^/manappuram/bills/(.*)/modules/(.*)/bbps/bills/(.*)$" ``` *The URL should have the biller's folder name.* - Comment lines in lambda_function.py like : ```python # token parse auth_token = event["multiValueHeaders"]["Authorization"][0].split(" ")[-1] # token verify if not verify_auth_token(auth_token): statusCode = 403 data = { "status": 403, "success": False, "error": { "code": "auth-error", }, } #Change elif fetchPart == "fetch": #To if fetchPart == "fetch": ``` - Change complianceRespCd and complianceReason for - Successful bill fetch - BFR001 - BFR004 - Successful payment - BPR005 - Duplicate payment ( if its there) - If there is `./build.sh` then we will use that only to build our `package.zip`. - Delete old `package.zip` and old `lib` folder if present. - Run `./build.sh` ***Any update required for AX41 should be built from a different branch where AX91 related changes are not present*** - If there is no `./build.sh`and if the deployment zip package (`f.zip`) is present and in Readme it says : ```bash zip -g f.zip lambda_function.py ``` Then create a duplicate of this zip and name it as `f_ax91.zip` . Add changes to it : ``` zip -g f_ax91.zip lambda_function.py ``` - To update the `package.zip` built with `./build.sh` copy the `zip -g` lines from `./update.sh` only and run them. - Create the function with function name : `eldia-bbps-connect-<biller-folder-name>-direct-migration-prod`. Only special character allowed is `-` Example : ```bash # Manappuram aws lambda create-function \ --function-name eldia-bbps-connect-manappuram-direct-migration-prod \ --runtime python3.8 \ --handler lambda_function.lambda_handler \ --role arn:aws:iam::448903783933:role/dev_rel_bbps_template \ --zip-file fileb://f_ax91.zip \ --timeout 90 \ --vpc-config SubnetIds=subnet-088f443f3c2d59a90,subnet-096acc2b3937d00b2,SecurityGroupIds=sg-0bbe7ba27c43d2102 # GTPL aws lambda create-function \ --function-name eldia-bbps-connect-gtpl-direct-migration-prod \ --runtime python3.8 \ --handler lambda_function.lambda_handler \ --role arn:aws:iam::448903783933:role/dev_rel_bbps_template \ --zip-file fileb://package.zip \ --timeout 90 \ --vpc-config SubnetIds=subnet-088f443f3c2d59a90,subnet-096acc2b3937d00b2,SecurityGroupIds=sg-0bbe7ba27c43d2102 ``` These billers did not need IP whitelisting so we deployed using eldia vpc. But from now on we will use the following `vpc-config` : ```bash aws lambda create-function \ --function-name eldia-bbps-connect-ebony-greens-apartments-direct-migration-prod \ --runtime python3.8 \ --handler lambda_function.lambda_handler \ --role arn:aws:iam::448903783933:role/dev_rel_bbps_template \ --zip-file fileb://package.zip \ --timeout 90 \ --vpc-config SubnetIds=subnet-0f42cc1d54d19d94a,SecurityGroupIds=sg-0c8b908e9c77dc090 ``` - Update function when needed: Example 1 : ```bash zip -g f_ax91.zip lambda_function.py aws lambda update-function-code --function-name eldia-bbps-connect-manappuram-direct-migration-prod --zip-file fileb://f_ax91.zip ``` Example 2 : ```bash ./build.sh zip -g package.zip lambda_function.py zip -g package.zip remote.py zip -g package.zip errors.py zip -g package.zip storage.py aws lambda update-function-code --function-name eldia-bbps-connect-gtpl-direct-migration-prod --zip-file fileb://package.zip ``` - Example Configs in AX91 Partner : ```json // Manappuram { "status": 201, "success": true, "data": { "companyName": "Manappuram Finance Limited", "email": "integrations@setu.co", "mobile": "9988778899", "name": "Manappuram Finance Limited", "id": "902288950972909239" } } //GTPL { "status": 201, "success": true, "data": { "companyName": "GTPL KCBPL Broadband Pvt Ltd", "email": "integrations@setu.co", "mobile": "9988778899", "name": "GTPL KCBPL Broadband Pvt Ltd", "id": "902373756024915308" } } ``` Biller : ```json // Manappuram { "status": 201, "success": true, "data": { "name": "Manappuram Finance Limited-Vehicle Loan", "partnerId": 902288950972909239, "id": "902290059435181439" } } // GTPL { "status": 201, "success": true, "data": { "name": "GTPL KCBPL Broadband Pvt Ltd", "partnerId": 902373756024915308, "id": "902375323436319777" } } ``` Copy whatever is there for AX41 for the following flags : - `isDeemed` - `repostingEnabled` - `dailySettlementReportEnabled` - `dailyTransactionReportEnabled` - `dailyTransactionReportEnabled` **Take special care dealing with the following flags:** - `settlementEnabled` - `splitEnabled` Biller config : ```json // Manappuram { "status": 200, "success": true, "data": { "baseUrl": { "authentication": { "credentials": {}, "type": "SETU_DEFAULT_JWT" }, "path": "https://setu-eldia-nlb.setu.co/invoke-lambda/eldia-bbps-connect-manappuram-direct-migration-prod/manappuram/bills/prod/modules/1" }, "dailyReportReceivers": [ "kaustav@setu.co" ], "dailySettlementReportEnabled": false, "dailyTransactionReportEnabled": false, "isDeemed": true, "repostingEnabled": true, "settlementEnabled": false, "settlementSchedule": "Instant", "shouldTransliterate": false, "splitEnabled": false } } // GTPL { "status": 200, "success": true, "data": { "baseUrl": { "authentication": { "credentials": {}, "type": "SETU_DEFAULT_JWT" }, "path": "https://setu-eldia-nlb.setu.co/invoke-lambda/eldia-bbps-connect-gtpl-direct-migration-prod/GTPL/bills/prod/modules/loan" }, "dailyReportReceivers": [ "kaustav@setu.co" ], "dailySettlementReportEnabled": false, "dailyTransactionReportEnabled": false, "isDeemed": true, "repostingEnabled": true, "settlementEnabled": false, "settlementSchedule": "Instant", "shouldTransliterate": false, "splitEnabled": false } } ``` Module value should be the same as whatever is there in AX41 - Upload MDM - Test Bill Fetch using Jamuna. Get Customer Identifier and test data from AX41 prod logs. - Example Ref ID for Manappuram : `ref_id : "KAUSTAVXX21122016ACXXXXXXXXX250505"` and for GTPL : `ref_id : "KAUSTAVXX21122016ACXXXXXXXXX250506"` - Add, commit and push changes to the branch and raise MR to merge with `direct-lambda-migration-ax91` branch