Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
sterlite_custom_reports
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
CI / CD Analytics
Repository Analytics
Value Stream Analytics
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
suryakant
sterlite_custom_reports
Commits
7f2a8b89
Commit
7f2a8b89
authored
Oct 04, 2023
by
iLensDevOps
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Pre-checks
parent
72f96be0
Changes
9
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
112 additions
and
156 deletions
+112
-156
scripts/__init__.py
scripts/__init__.py
+1
-5
scripts/configurations/__init__.py
scripts/configurations/__init__.py
+4
-2
scripts/constants/__init__.py
scripts/constants/__init__.py
+3
-0
scripts/core/db/postgres/custom_report_query.py
scripts/core/db/postgres/custom_report_query.py
+1
-1
scripts/core/exception/app_exceptions.py
scripts/core/exception/app_exceptions.py
+2
-5
scripts/core/handler/event_handler.py
scripts/core/handler/event_handler.py
+14
-14
scripts/core/services/event_service.py
scripts/core/services/event_service.py
+6
-6
scripts/core/utilities/postgresql_db_utils.py
scripts/core/utilities/postgresql_db_utils.py
+12
-5
scripts/template/sterlite_report_template.py
scripts/template/sterlite_report_template.py
+69
-118
No files found.
scripts/__init__.py
View file @
7f2a8b89
custom_report_json
=
[
custom_report_json
=
[{}]
{
}
]
scripts/configurations/__init__.py
View file @
7f2a8b89
"""
"""
This __init__ file contains the configuration settings for the application
This __init__ file contains the configuration settings for the application
"""
"""
import
os
import
shutil
from
pydantic
import
BaseSettings
from
pydantic
import
BaseSettings
from
dotenv
import
load_dotenv
from
dotenv
import
load_dotenv
...
@@ -15,6 +13,7 @@ class SecurityDetails(BaseSettings):
...
@@ -15,6 +13,7 @@ class SecurityDetails(BaseSettings):
"""
"""
Configuration class for security token details
Configuration class for security token details
"""
"""
secure_cookie
:
bool
secure_cookie
:
bool
lock_out_time_mins
:
int
lock_out_time_mins
:
int
leeway_in_mins
:
int
leeway_in_mins
:
int
...
@@ -29,6 +28,7 @@ class ServiceDetails(BaseSettings):
...
@@ -29,6 +28,7 @@ class ServiceDetails(BaseSettings):
"""
"""
Configuration class for application service details
Configuration class for application service details
"""
"""
host_name
:
str
host_name
:
str
port_name
:
str
port_name
:
str
env
:
str
env
:
str
...
@@ -39,6 +39,7 @@ class LoggingDetails(BaseSettings):
...
@@ -39,6 +39,7 @@ class LoggingDetails(BaseSettings):
"""
"""
Configuration class for logging database details
Configuration class for logging database details
"""
"""
log_base_path
:
str
log_base_path
:
str
log_level
:
str
log_level
:
str
max_bytes
:
int
max_bytes
:
int
...
@@ -54,6 +55,7 @@ class PostgresDetails(BaseSettings):
...
@@ -54,6 +55,7 @@ class PostgresDetails(BaseSettings):
Config:
Config:
env_prefix (str): The environment variable prefix for PostgreSQL settings.
env_prefix (str): The environment variable prefix for PostgreSQL settings.
"""
"""
uri
:
str
uri
:
str
host
:
str
host
:
str
port
:
str
port
:
str
...
...
scripts/constants/__init__.py
View file @
7f2a8b89
...
@@ -19,6 +19,7 @@ class APIConstants:
...
@@ -19,6 +19,7 @@ class APIConstants:
"""
"""
Constants related to API endpoints
Constants related to API endpoints
"""
"""
STARTUP
=
"startup"
STARTUP
=
"startup"
SHUTDOWN
=
"shutdown"
SHUTDOWN
=
"shutdown"
HEALTH_CHECK
=
"/healthcheck"
HEALTH_CHECK
=
"/healthcheck"
...
@@ -30,6 +31,7 @@ class CommonConstants:
...
@@ -30,6 +31,7 @@ class CommonConstants:
"""
"""
Common constants used in the application
Common constants used in the application
"""
"""
GET
=
"GET"
GET
=
"GET"
POST
=
"POST"
POST
=
"POST"
CUSTOM_REPORT_TAG
=
"Event Handler Endpoints"
CUSTOM_REPORT_TAG
=
"Event Handler Endpoints"
...
@@ -49,6 +51,7 @@ class ReportType:
...
@@ -49,6 +51,7 @@ class ReportType:
"""
"""
Constants related to ReportType
Constants related to ReportType
"""
"""
REFINERY_REPORT
=
"refinery_report"
REFINERY_REPORT
=
"refinery_report"
...
...
scripts/core/db/postgres/custom_report_query.py
View file @
7f2a8b89
scripts/core/exception/app_exceptions.py
View file @
7f2a8b89
...
@@ -7,14 +7,11 @@ class GeneralException(Exception):
...
@@ -7,14 +7,11 @@ class GeneralException(Exception):
class
ErrorMessages
:
class
ErrorMessages
:
"""
"""
"""
"""
CONNECTION_EXCEPTION
=
""
CONNECTION_EXCEPTION
=
""
COMMON_MESSAGE
=
""
COMMON_MESSAGE
=
""
class
PostgresDBError
:
class
PostgresDBError
:
"""
""" """
"""
scripts/core/handler/event_handler.py
View file @
7f2a8b89
...
@@ -28,7 +28,7 @@ class CustomReportHandler:
...
@@ -28,7 +28,7 @@ class CustomReportHandler:
)
)
logger
.
info
(
f
"Creating list of dates starting from {start_date} to {end_date}"
)
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
# Iterating and creating where clause filters
# Output - {'day_start_date': 'YYYY-MM-DD', 'day_end_date': 'YYYY-MM-DD',
# Output - {'day_start_date': 'YYYY-MM-DD', 'day_end_date': 'YYYY-MM-DD',
...
@@ -36,8 +36,8 @@ class CustomReportHandler:
...
@@ -36,8 +36,8 @@ class CustomReportHandler:
# 'year_start_date': 'YYYY-MM-DD', 'year_end_date': 'YYYY-MM-DD'}
# 'year_start_date': 'YYYY-MM-DD', 'year_end_date': 'YYYY-MM-DD'}
for
each_dates
in
date_list
.
strftime
(
for
each_dates
in
date_list
.
strftime
(
CommonConstants
.
DATE_TIME_FORMAT
)
.
to_list
():
CommonConstants
.
DATE_TIME_FORMAT
)
.
to_list
():
# To get the financial year
# To get the financial year
financial_year
=
None
financial_year
=
None
date_obj
=
datetime
.
strptime
(
each_dates
,
CommonConstants
.
DATE_TIME_FORMAT
)
date_obj
=
datetime
.
strptime
(
each_dates
,
CommonConstants
.
DATE_TIME_FORMAT
)
...
@@ -73,18 +73,20 @@ class CustomReportHandler:
...
@@ -73,18 +73,20 @@ class CustomReportHandler:
temp_data_dict
=
dict
()
temp_data_dict
=
dict
()
# Iterating each query for each KPI
# Iterating each query for each KPI
for
each_query
in
\
for
each_query
in
input_json
[
each_blocks
][
CommonConstants
.
QUERY
][
input_json
[
each_blocks
][
CommonConstants
.
QUERY
][
each_kpi
]:
each_kpi
query
=
each_query
.
\
]:
format
(
query
=
each_query
.
format
(
day_start_date
=
date_filter
[
CommonConstants
.
DAY_START_DATE
],
day_start_date
=
date_filter
[
CommonConstants
.
DAY_START_DATE
],
day_end_date
=
date_filter
[
CommonConstants
.
DAY_END_DATE
],
day_end_date
=
date_filter
[
CommonConstants
.
DAY_END_DATE
],
month_start_date
=
date_filter
[
month_start_date
=
date_filter
[
CommonConstants
.
MONTH_START_DATE
],
CommonConstants
.
MONTH_START_DATE
],
month_end_date
=
date_filter
[
CommonConstants
.
MONTH_END_DATE
],
month_end_date
=
date_filter
[
CommonConstants
.
MONTH_END_DATE
],
year_start_date
=
date_filter
[
year_start_date
=
date_filter
[
CommonConstants
.
YEAR_START_DATE
],
CommonConstants
.
YEAR_START_DATE
year_end_date
=
date_filter
[
CommonConstants
.
YEAR_END_DATE
]
],
year_end_date
=
date_filter
[
CommonConstants
.
YEAR_END_DATE
],
)
)
response
=
self
.
postgres_db_obj
.
fetch_data
(
query
=
query
)
response
=
self
.
postgres_db_obj
.
fetch_data
(
query
=
query
)
...
@@ -100,9 +102,7 @@ class CustomReportHandler:
...
@@ -100,9 +102,7 @@ class CustomReportHandler:
else
:
else
:
temp_data_dict
=
dict
()
temp_data_dict
=
dict
()
for
each_columns
in
input_json
[
each_blocks
][
"data_column"
]:
for
each_columns
in
input_json
[
each_blocks
][
"data_column"
]:
temp_data_dict
.
update
(
temp_data_dict
.
update
({
each_columns
:
None
})
{
each_columns
:
None
}
)
input_json
[
each_blocks
][
"data"
]
.
append
(
temp_data_dict
)
input_json
[
each_blocks
][
"data"
]
.
append
(
temp_data_dict
)
return
input_json
return
input_json
...
...
scripts/core/services/event_service.py
View file @
7f2a8b89
...
@@ -17,7 +17,7 @@ from scripts.core.logging.application_logging import logger
...
@@ -17,7 +17,7 @@ from scripts.core.logging.application_logging import logger
from
scripts.constants
import
APIConstants
,
CommonConstants
,
figlet
from
scripts.constants
import
APIConstants
,
CommonConstants
,
figlet
from
scripts.core.schemas.api
import
(
from
scripts.core.schemas.api
import
(
custom_report_input_model
,
custom_report_input_model
,
custom_report_output_model
custom_report_output_model
,
)
)
report_handler_obj
=
CustomReportHandler
()
report_handler_obj
=
CustomReportHandler
()
...
@@ -40,8 +40,7 @@ async def shutdown_event():
...
@@ -40,8 +40,7 @@ async def shutdown_event():
print
(
"Exiting!"
)
print
(
"Exiting!"
)
@
event_router
.
get
(
@
event_router
.
get
(
APIConstants
.
HEALTH_CHECK
)
APIConstants
.
HEALTH_CHECK
)
async
def
ping
():
async
def
ping
():
"""
"""
This function returns the `200 status message`.
This function returns the `200 status message`.
...
@@ -50,7 +49,8 @@ async def ping():
...
@@ -50,7 +49,8 @@ async def ping():
@
event_router
.
post
(
@
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
):
async
def
custom_report_function
(
input_json
:
custom_report_input_model
):
"""
"""
Initiate postgres db and create tables
Initiate postgres db and create tables
...
...
scripts/core/utilities/postgresql_db_utils.py
View file @
7f2a8b89
...
@@ -23,8 +23,11 @@ class PostgresDBUtility:
...
@@ -23,8 +23,11 @@ class PostgresDBUtility:
def
create_connection
(
self
,
db
=
None
):
def
create_connection
(
self
,
db
=
None
):
_db
=
db
or
self
.
db_name
_db
=
db
or
self
.
db_name
conn
=
psycopg2
.
connect
(
conn
=
psycopg2
.
connect
(
database
=
_db
,
user
=
self
.
username
,
password
=
self
.
password
,
host
=
self
.
host
,
database
=
_db
,
port
=
self
.
port
user
=
self
.
username
,
password
=
self
.
password
,
host
=
self
.
host
,
port
=
self
.
port
,
)
)
logger
.
debug
(
"Connection established successfully"
)
logger
.
debug
(
"Connection established successfully"
)
return
conn
return
conn
...
@@ -125,8 +128,11 @@ class PostgresDBUtility:
...
@@ -125,8 +128,11 @@ class PostgresDBUtility:
cursor
.
execute
(
query
)
cursor
.
execute
(
query
)
json
=
cursor
.
fetchall
()
json
=
cursor
.
fetchall
()
list_of_lists
=
list
(
list_of_lists
=
list
(
map
(
lambda
each
:
[
each
[
"plant"
],
each
[
"line"
],
each
[
"machine"
]],
map
(
json
))
lambda
each
:
[
each
[
"plant"
],
each
[
"line"
],
each
[
"machine"
]],
json
,
)
)
except
Exception
as
e
:
except
Exception
as
e
:
logger
.
error
(
f
"Exception while fetching {str(e)}"
)
logger
.
error
(
f
"Exception while fetching {str(e)}"
)
except
Exception
as
e
:
except
Exception
as
e
:
...
@@ -232,7 +238,8 @@ class PostgresDBUtility:
...
@@ -232,7 +238,8 @@ class PostgresDBUtility:
except
Exception
as
e
:
except
Exception
as
e
:
logger
.
exception
(
logger
.
exception
(
f
"Exception in the check table existance definition{str(e)}"
)
f
"Exception in the check table existance definition{str(e)}"
)
finally
:
finally
:
try
:
try
:
...
...
scripts/template/sterlite_report_template.py
View file @
7f2a8b89
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment