Commit 7f2a8b89 authored by iLensDevOps's avatar iLensDevOps

Pre-checks

parent 72f96be0
custom_report_json = [
{
}
]
custom_report_json = [{}]
"""
This __init__ file contains the configuration settings for the application
"""
import os
import shutil
from pydantic import BaseSettings
from dotenv import load_dotenv
......@@ -15,6 +13,7 @@ class SecurityDetails(BaseSettings):
"""
Configuration class for security token details
"""
secure_cookie: bool
lock_out_time_mins: int
leeway_in_mins: int
......@@ -29,6 +28,7 @@ class ServiceDetails(BaseSettings):
"""
Configuration class for application service details
"""
host_name: str
port_name: str
env: str
......@@ -39,6 +39,7 @@ class LoggingDetails(BaseSettings):
"""
Configuration class for logging database details
"""
log_base_path: str
log_level: str
max_bytes: int
......@@ -54,6 +55,7 @@ class PostgresDetails(BaseSettings):
Config:
env_prefix (str): The environment variable prefix for PostgreSQL settings.
"""
uri: str
host: str
port: str
......
......@@ -19,6 +19,7 @@ class APIConstants:
"""
Constants related to API endpoints
"""
STARTUP = "startup"
SHUTDOWN = "shutdown"
HEALTH_CHECK = "/healthcheck"
......@@ -30,6 +31,7 @@ class CommonConstants:
"""
Common constants used in the application
"""
GET = "GET"
POST = "POST"
CUSTOM_REPORT_TAG = "Event Handler Endpoints"
......@@ -49,6 +51,7 @@ class ReportType:
"""
Constants related to ReportType
"""
REFINERY_REPORT = "refinery_report"
......
......@@ -7,14 +7,11 @@ class GeneralException(Exception):
class ErrorMessages:
"""
""" """
"""
CONNECTION_EXCEPTION = ""
COMMON_MESSAGE = ""
class PostgresDBError:
"""
"""
""" """
......@@ -28,7 +28,7 @@ class CustomReportHandler:
)
logger.info(f"Creating list of dates starting from {start_date} to {end_date}")
date_list = pd.date_range(start_date, end_date, freq='D')
date_list = pd.date_range(start_date, end_date, freq="D")
# Iterating and creating where clause filters
# Output - {'day_start_date': 'YYYY-MM-DD', 'day_end_date': 'YYYY-MM-DD',
......@@ -36,8 +36,8 @@ class CustomReportHandler:
# 'year_start_date': 'YYYY-MM-DD', 'year_end_date': 'YYYY-MM-DD'}
for each_dates in date_list.strftime(
CommonConstants.DATE_TIME_FORMAT).to_list():
CommonConstants.DATE_TIME_FORMAT
).to_list():
# To get the financial year
financial_year = None
date_obj = datetime.strptime(each_dates, CommonConstants.DATE_TIME_FORMAT)
......@@ -73,18 +73,20 @@ class CustomReportHandler:
temp_data_dict = dict()
# Iterating each query for each KPI
for each_query in \
input_json[each_blocks][CommonConstants.QUERY][each_kpi]:
query = each_query. \
format(
for each_query in input_json[each_blocks][CommonConstants.QUERY][
each_kpi
]:
query = each_query.format(
day_start_date=date_filter[CommonConstants.DAY_START_DATE],
day_end_date=date_filter[CommonConstants.DAY_END_DATE],
month_start_date=date_filter[
CommonConstants.MONTH_START_DATE],
CommonConstants.MONTH_START_DATE
],
month_end_date=date_filter[CommonConstants.MONTH_END_DATE],
year_start_date=date_filter[
CommonConstants.YEAR_START_DATE],
year_end_date=date_filter[CommonConstants.YEAR_END_DATE]
CommonConstants.YEAR_START_DATE
],
year_end_date=date_filter[CommonConstants.YEAR_END_DATE],
)
response = self.postgres_db_obj.fetch_data(query=query)
......@@ -100,9 +102,7 @@ class CustomReportHandler:
else:
temp_data_dict = dict()
for each_columns in input_json[each_blocks]["data_column"]:
temp_data_dict.update(
{each_columns: None}
)
temp_data_dict.update({each_columns: None})
input_json[each_blocks]["data"].append(temp_data_dict)
return input_json
......
......@@ -17,7 +17,7 @@ from scripts.core.logging.application_logging import logger
from scripts.constants import APIConstants, CommonConstants, figlet
from scripts.core.schemas.api import (
custom_report_input_model,
custom_report_output_model
custom_report_output_model,
)
report_handler_obj = CustomReportHandler()
......@@ -40,8 +40,7 @@ async def shutdown_event():
print("Exiting!")
@event_router.get(
APIConstants.HEALTH_CHECK)
@event_router.get(APIConstants.HEALTH_CHECK)
async def ping():
"""
This function returns the `200 status message`.
......@@ -50,7 +49,8 @@ async def ping():
@event_router.post(
APIConstants.CUSTOM_REPORT_ENDPOINT, response_model=custom_report_output_model)
APIConstants.CUSTOM_REPORT_ENDPOINT, response_model=custom_report_output_model
)
async def custom_report_function(input_json: custom_report_input_model):
"""
Initiate postgres db and create tables
......
......@@ -23,8 +23,11 @@ class PostgresDBUtility:
def create_connection(self, db=None):
_db = db or self.db_name
conn = psycopg2.connect(
database=_db, user=self.username, password=self.password, host=self.host,
port=self.port
database=_db,
user=self.username,
password=self.password,
host=self.host,
port=self.port,
)
logger.debug("Connection established successfully")
return conn
......@@ -125,8 +128,11 @@ class PostgresDBUtility:
cursor.execute(query)
json = cursor.fetchall()
list_of_lists = list(
map(lambda each: [each["plant"], each["line"], each["machine"]],
json))
map(
lambda each: [each["plant"], each["line"], each["machine"]],
json,
)
)
except Exception as e:
logger.error(f"Exception while fetching {str(e)}")
except Exception as e:
......@@ -232,7 +238,8 @@ class PostgresDBUtility:
except Exception as e:
logger.exception(
f"Exception in the check table existance definition{str(e)}")
f"Exception in the check table existance definition{str(e)}"
)
finally:
try:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment