Commit 12236604 authored by harshavardhan.c's avatar harshavardhan.c

added oee layouts for saving the oee project layout

parent 0b8c92d9
...@@ -68,9 +68,11 @@ class DBConstants: ...@@ -68,9 +68,11 @@ class DBConstants:
db_metadata = "ilens_configuration" db_metadata = "ilens_configuration"
db_ebpr = "ilens_ebpr" db_ebpr = "ilens_ebpr"
db_ilens_assistant = "ilens_assistant" db_ilens_assistant = "ilens_assistant"
db_ilens_oee = "ilens_oee"
collection_constants = "constants" collection_constants = "constants"
collection_tag_hierarchy = "tag_hierarchy" collection_tag_hierarchy = "tag_hierarchy"
collection_oee_layouts = "oee_layouts"
class EndpointConstants: class EndpointConstants:
......
from scripts.db.mongo.dbs.oee_layouts import OeeLayoutCollectionQueries from scripts.constants.db_connections import mongo_client
from scripts.db.mongo.ilens_oee.collections.oee_layouts import OEELayouts, OeeLayoutCollection
from scripts.schemas.layout import SaveLayoutRequest, GetLayoutRequest from scripts.schemas.layout import SaveLayoutRequest, GetLayoutRequest
from scripts.db.mongo.dbs.oee_layouts import OeeLayoutCollection
class LayoutHandler: class LayoutHandler:
def __init__(self): def __init__(self, project_id=None):
self.layout_con = OeeLayoutCollectionQueries() self.oee_layout_conn = OEELayouts(project_id=project_id, mongo_client=mongo_client)
async def save_layout(self, layout_request: SaveLayoutRequest): async def save_layout(self, layout_request: SaveLayoutRequest):
try: try:
data = self.layout_con.update_layout( data = self.oee_layout_conn.update_layout(
layout_request.dict(), layout_request.project_id data=layout_request.dict(), project_id=layout_request.project_id
) )
return data return data
except Exception: except Exception:
...@@ -18,7 +18,7 @@ class LayoutHandler: ...@@ -18,7 +18,7 @@ class LayoutHandler:
async def fetch_layout(self, layout_request: GetLayoutRequest): async def fetch_layout(self, layout_request: GetLayoutRequest):
try: try:
data: OeeLayoutCollection = self.layout_con.find_layout( data: OeeLayoutCollection = self.oee_layout_conn.find_layout(
layout_request.project_id layout_request.project_id
) )
return data.data return data.data
......
from typing import Optional, List
from pydantic import BaseModel
from scripts.constants import DBConstants
from scripts.constants.ui_constants import Layouts
from scripts.utils.mongo_util import MongoCollectionBaseClass
class OeeLayoutCollection(BaseModel):
project_id: Optional[str]
data: List
type: Optional[str]
class OEELayouts(MongoCollectionBaseClass):
def __init__(self, mongo_client, project_id=None):
super().__init__(mongo_client, database=DBConstants.db_ilens_oee,
collection=DBConstants.collection_oee_layouts)
self.project_id = project_id
def update_layout(self, data, project_id, upsert=False):
condition = {"project_id": project_id}
return self.update_one(data=data, upsert=upsert, query=condition)
def find_layout(self, project_id):
condition = {"project_id": project_id}
layout = self.find_one(query=condition)
if not layout:
default_layout = Layouts.default_layout
return OeeLayoutCollection(**default_layout)
return OeeLayoutCollection(**layout)
...@@ -5,28 +5,30 @@ from sqlalchemy.orm import Session ...@@ -5,28 +5,30 @@ from sqlalchemy.orm import Session
from scripts.constants import Endpoints, ResponseCodes from scripts.constants import Endpoints, ResponseCodes
from scripts.core.handlers.api_handler import APIHandler from scripts.core.handlers.api_handler import APIHandler
# from scripts.core.handlers.layout_handler import LayoutHandler from scripts.core.handlers.layout_handler import LayoutHandler
from scripts.db.psql.databases import get_db from scripts.db.psql.databases import get_db
from scripts.errors import ILensError
from scripts.logging import logger from scripts.logging import logger
from scripts.schemas.batch_oee import BatchesGet, ChartRequest from scripts.schemas.batch_oee import BatchesGet, ChartRequest
# from scripts.schemas.layout import GetLayoutRequest, SaveLayoutRequest from scripts.schemas.layout import GetLayoutRequest, SaveLayoutRequest
from scripts.schemas.response_models import DefaultFailureResponse, DefaultResponse from scripts.schemas.response_models import DefaultFailureResponse, DefaultResponse
from scripts.errors import ILensError from scripts.utils.security_utils.cookie_decorator import MetaInfoSchema, MetaInfoCookie
api_handler = APIHandler() api_handler = APIHandler()
# layout_handler = LayoutHandler()
ui_service_router = APIRouter(prefix=Endpoints.api_batches, tags=["UI Services"]) ui_service_router = APIRouter(prefix=Endpoints.api_batches, tags=["UI Services"])
get_cookies = MetaInfoCookie()
@ui_service_router.post(Endpoints.api_get) @ui_service_router.post(Endpoints.api_get)
async def get_all_batches(request_data: BatchesGet, db: Session = Depends(get_db)): async def get_all_batches(request_data: BatchesGet, db: Session = Depends(get_db),
meta: MetaInfoSchema = Depends(get_cookies)):
try: try:
data = await api_handler.get_batches_info(request_data=request_data, db=db) data = await api_handler.get_batches_info(request_data=request_data, db=db)
return DefaultResponse( return DefaultResponse(
data=data, data=data,
status=ResponseCodes.SUCCESS, status=ResponseCodes.SUCCESS,
message="Products fetched successfully", message="Batches fetched successfully",
) )
except Exception as e: except Exception as e:
tb = traceback.format_exc() tb = traceback.format_exc()
...@@ -36,7 +38,8 @@ async def get_all_batches(request_data: BatchesGet, db: Session = Depends(get_db ...@@ -36,7 +38,8 @@ async def get_all_batches(request_data: BatchesGet, db: Session = Depends(get_db
@ui_service_router.post(Endpoints.api_chart_data) @ui_service_router.post(Endpoints.api_chart_data)
async def get_chart_data(request_data: ChartRequest, db: Session = Depends(get_db)): async def get_chart_data(request_data: ChartRequest, db: Session = Depends(get_db),
meta: MetaInfoSchema = Depends(get_cookies)):
try: try:
data = await api_handler.get_chart_data(request_data=request_data, db=db) data = await api_handler.get_chart_data(request_data=request_data, db=db)
return DefaultResponse( return DefaultResponse(
...@@ -53,36 +56,37 @@ async def get_chart_data(request_data: ChartRequest, db: Session = Depends(get_d ...@@ -53,36 +56,37 @@ async def get_chart_data(request_data: ChartRequest, db: Session = Depends(get_d
return DefaultFailureResponse(error=e.args) return DefaultFailureResponse(error=e.args)
# @ui_service_router.post(Endpoints.get_layout) @ui_service_router.post(Endpoints.get_layout)
# async def get_layout(request_data: GetLayoutRequest): async def get_layout(request_data: GetLayoutRequest, meta: MetaInfoSchema = Depends(get_cookies)):
# try: try:
# data = await layout_handler.fetch_layout(layout_request=request_data) layout_handler = LayoutHandler(project_id=meta.project_id)
# return DefaultResponse( data = await layout_handler.fetch_layout(layout_request=request_data)
# data=data, return DefaultResponse(
# status=ResponseCodes.SUCCESS, data=data,
# message="Layout fetched successfully", status=ResponseCodes.SUCCESS,
# ) message="Layout fetched successfully",
# except Exception as e: )
# tb = traceback.format_exc() except Exception as e:
# logger.exception(e) tb = traceback.format_exc()
# logger.exception(tb) logger.exception(e)
# return DefaultFailureResponse(error=e.args) logger.exception(tb)
# return DefaultFailureResponse(error=e.args)
#
# @ui_service_router.post(Endpoints.save_layout)
# async def save_layout(request_data: SaveLayoutRequest):
# try:
# data = await layout_handler.save_layout(layout_request=request_data)
# return DefaultResponse(
# data=data, status=ResponseCodes.SUCCESS, message="Layout saved successfully"
# )
# except Exception as e:
# tb = traceback.format_exc()
# logger.exception(e)
# logger.exception(tb)
# return DefaultFailureResponse(error=e.args)
@ui_service_router.post(Endpoints.save_layout)
async def save_layout(request_data: SaveLayoutRequest, meta: MetaInfoSchema = Depends(get_cookies)):
try:
layout_handler = LayoutHandler(project_id=meta.project_id)
data = await layout_handler.save_layout(layout_request=request_data)
return DefaultResponse(
data=data, status=ResponseCodes.SUCCESS, message="Layout saved successfully"
)
except Exception as e:
tb = traceback.format_exc()
logger.exception(e)
logger.exception(tb)
return DefaultFailureResponse(error=e.args)
# -------------Code Demo Backup----------------# # -------------Code Demo Backup----------------#
# #
......
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