Signal R in each method in Functionapp.py
import asyncio
import azure.functions as func
import logging
import json
import functools
import multiples_sales_caliberation
import multiples_ebitda_caliberation
import multiples_sales_liquidity
import multiples_ebitda_liquidity
import gorden_growth
import dcf_exit_multiples_sales
import dcf_exit_multiples_ebitda
import extract_document_data
import asset_sensitivity_check
from response_handling import handle_error, handle_success
from fn_pwc_cit_rates_scaper_bronze import bp as cit_bronze_scraper
from fn_cit_rates_bronze_silver_transformation import bp as cit_bronze_silver_transformation
from fn_risk_premium_scraper_bronze import bp as risk_premium_scraper_bronze
from fn_risk_premium_bronze_gold_transformation import bp as risk_premium_bronze_gold_transformation
from connection import send_restapi_message,notify_and_handle_errors
app = func.FunctionApp(http_auth_level=func.AuthLevel.FUNCTION)
app.register_functions(cit_bronze_scraper)
app.register_functions(cit_bronze_silver_transformation)
app.register_functions(risk_premium_scraper_bronze)
app.register_functions(risk_premium_bronze_gold_transformation)
#todo other functions should be mved to separate files in another PR
# Wrapper function with decorator
@app.route(route="fn_multiples_sales_caliberation")
@notify_and_handle_errors
async def fn_multiples_sales_caliberation(req: func.HttpRequest) -> func.HttpResponse :
logging.info("Process started")
req_body = req.get_json()
Asset_Valuation_Id = req_body.get('Asset_Valuation_Id', 'Unknown')
Methodology_Id = req_body.get('Methodology_Id', 'Unknown')
# Only business logic here
result = await multiples_sales_caliberation.multiples_sales_caliberation(Asset_Valuation_Id, Methodology_Id )
return result # Decorator handles JSON/HttpResponse wrapping
@app.route(route="fn_multiples_ebitda_caliberation")
@notify_and_handle_errors
async def fn_multiples_ebitda_caliberation(req: func.HttpRequest) -> func.HttpResponse :
req_body = req.get_json()
Asset_Valuation_Id = req_body.get('Asset_Valuation_Id', 'Unknown')
Methodology_Id = req_body.get('Methodology_Id', 'Unknown')
# Only business logic here
result = await multiples_ebitda_caliberation.multiples_ebitda_caliberation(Asset_Valuation_Id, Methodology_Id )
return result # Decorator handles JSON/HttpResponse wrapping
@app.route(route="fn_multiples_sales_liquidity")
@notify_and_handle_errors
async def fn_multiples_sales_liquidity(req: func.HttpRequest) -> func.HttpResponse :
req_body = req.get_json()
Asset_Valuation_Id = req_body.get('Asset_Valuation_Id', 'Unknown')
Methodology_Id = req_body.get('Methodology_Id', 'Unknown')
# Only business logic here
result = await multiples_sales_liquidity.multiples_sales_liquidity(Asset_Valuation_Id, Methodology_Id )
return result # Decorator handles JSON/HttpResponse wrapping
@app.route(route="fn_multiples_ebitda_liquidity")
@notify_and_handle_errors
async def fn_multiples_ebitda_liquidity(req: func.HttpRequest) -> func.HttpResponse :
req_body = req.get_json()
Asset_Valuation_Id = req_body.get('Asset_Valuation_Id', 'Unknown')
Methodology_Id = req_body.get('Methodology_Id', 'Unknown')
# Only business logic here
result = await multiples_ebitda_liquidity.multiples_ebitda_liquidity(Asset_Valuation_Id, Methodology_Id )
return result # Decorator handles JSON/HttpResponse wrapping
@app.route(route="fn_gorden_growth")
@notify_and_handle_errors
async def fn_gorden_growth(req: func.HttpRequest):
req_body = req.get_json()
Asset_Valuation_Id = req_body.get('Asset_Valuation_Id', 'Unknown')
Methodology_Id = req_body.get('Methodology_Id', 'Unknown')
# Only business logic here
result = await gorden_growth.gorden_growth(Asset_Valuation_Id, Methodology_Id)
return result # Decorator handles JSON/HttpResponse wrapping
@app.route(route="fn_dcf_exit_multiples_sales")
@notify_and_handle_errors
async def fn_dcf_exit_multiples_sales(req: func.HttpRequest) -> func.HttpResponse :
req_body = req.get_json()
Asset_Valuation_Id = req_body.get('Asset_Valuation_Id', 'Unknown')
Methodology_Id = req_body.get('Methodology_Id', 'Unknown')
# Only business logic here
result = await dcf_exit_multiples_sales.dcf_exit_multiples_sales(Asset_Valuation_Id, Methodology_Id)
return result # Decorator handles JSON/HttpResponse wrapping
@app.route(route="fn_dcf_exit_multiples_ebitda")
@notify_and_handle_errors
async def fn_dcf_exit_multiples_ebitda(req: func.HttpRequest) -> func.HttpResponse :
req_body = req.get_json()
Asset_Valuation_Id = req_body.get('Asset_Valuation_Id', 'Unknown')
Methodology_Id = req_body.get('Methodology_Id', 'Unknown')
# Only business logic here
result = await dcf_exit_multiples_ebitda.dcf_exit_multiples_ebitda(Asset_Valuation_Id, Methodology_Id)
return result # Decorator handles JSON/HttpResponse wrapping
@app.route(route="fn_extract_document_data")
@notify_and_handle_errors
async def fn_extract_document_data(req: func.HttpRequest) -> func.HttpResponse :
req_body = req.get_json()
Asset_Valuation_Id = req_body.get('Asset_Valuation_Id', 'Unknown')
Asset_Fund_Year_Map_Id = req_body.get('Asset_Fund_Year_Map_Id', 'Unknown')
Backtesting_Year_Id = req_body.get('Backtesting_Year_Id', 'Unknown')
Document_Id = req_body.get('Document_Id', 'Unknown')
Extraction_Method = req_body.get('Extraction_Method', 'Unknown')
# Only business logic here
result = await extract_document_data.fn_extract_document_data( Asset_Valuation_Id,Asset_Fund_Year_Map_Id,Backtesting_Year_Id,Document_Id,Extraction_Method)
return result # Decorator handles JSON/HttpResponse wrapping
@app.route(route="fn_sensitivity_check")
@notify_and_handle_errors
async def fn_sensitivity_check(req: func.HttpRequest) -> func.HttpResponse :
req_body = req.get_json()
Asset_Valuation_Id = req_body.get('Asset_Valuation_Id', 'Unknown')
# Only business logic here
result = await asset_sensitivity_check.asset_sensitivity_check( Asset_Valuation_Id)
return result # Decorator handles JSON/HttpResponse wrapping
Comments
Post a Comment