From 290a0c6573f7f103134f1b2432c0e08f538b17a7 Mon Sep 17 00:00:00 2001 From: PSNAppZ Date: Thu, 28 Mar 2024 15:33:16 +0530 Subject: [PATCH] Fix mapper schema imports + controller path refactoring --- src/__init__.py | 0 src/openg2p_spar_mapper_api/app.py | 3 +- src/openg2p_spar_mapper_api/config.py | 6 +- .../controllers/__init__.py | 2 + .../async_mapper_controller.py | 6 +- .../controllers/g2pconnect/__init__.py | 2 - .../sync_mapper_controller.py | 61 ++++++++++++------- .../services/exceptions.py | 9 ++- .../services/id_fa_mapping_validations.py | 14 ++--- .../services/mapper.py | 9 +-- .../services/request_helper.py | 2 +- .../services/response_helper.py | 6 +- 12 files changed, 73 insertions(+), 47 deletions(-) create mode 100644 src/__init__.py rename src/openg2p_spar_mapper_api/controllers/{g2pconnect => }/async_mapper_controller.py (96%) delete mode 100644 src/openg2p_spar_mapper_api/controllers/g2pconnect/__init__.py rename src/openg2p_spar_mapper_api/controllers/{g2pconnect => }/sync_mapper_controller.py (66%) diff --git a/src/__init__.py b/src/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/openg2p_spar_mapper_api/app.py b/src/openg2p_spar_mapper_api/app.py index 4bb8553..c541486 100644 --- a/src/openg2p_spar_mapper_api/app.py +++ b/src/openg2p_spar_mapper_api/app.py @@ -3,7 +3,7 @@ from .config import Settings from openg2p_fastapi_common.app import Initializer as BaseInitializer -from .controllers.g2pconnect import ( +from .controllers import ( SyncMapperController, AsyncMapperController, ) @@ -17,6 +17,7 @@ AsyncRequestHelper, AsyncResponseHelper, ) + _config = Settings.get_config() diff --git a/src/openg2p_spar_mapper_api/config.py b/src/openg2p_spar_mapper_api/config.py index d1ef875..6943940 100644 --- a/src/openg2p_spar_mapper_api/config.py +++ b/src/openg2p_spar_mapper_api/config.py @@ -22,8 +22,8 @@ class Settings(BaseSettings): """ openapi_version: str = __version__ - db_dbname: str = "spar-db" - + db_dbname: str = "mapper-db" + default_callback_url: Optional[AnyUrl] = None default_callback_timeout: int = 10 - callback_sender_id: str = "spar.dev.openg2p.net" + callback_sender_id: str = "mapper.dev.openg2p.net" diff --git a/src/openg2p_spar_mapper_api/controllers/__init__.py b/src/openg2p_spar_mapper_api/controllers/__init__.py index e69de29..af8d0e9 100644 --- a/src/openg2p_spar_mapper_api/controllers/__init__.py +++ b/src/openg2p_spar_mapper_api/controllers/__init__.py @@ -0,0 +1,2 @@ +from .sync_mapper_controller import SyncMapperController +from .async_mapper_controller import AsyncMapperController diff --git a/src/openg2p_spar_mapper_api/controllers/g2pconnect/async_mapper_controller.py b/src/openg2p_spar_mapper_api/controllers/async_mapper_controller.py similarity index 96% rename from src/openg2p_spar_mapper_api/controllers/g2pconnect/async_mapper_controller.py rename to src/openg2p_spar_mapper_api/controllers/async_mapper_controller.py index 3ea590d..02fb08c 100644 --- a/src/openg2p_spar_mapper_api/controllers/g2pconnect/async_mapper_controller.py +++ b/src/openg2p_spar_mapper_api/controllers/async_mapper_controller.py @@ -9,11 +9,11 @@ AsyncResponse, AsyncCallbackRequest, ) -from openg2p_g2pconnect_common_lib.spar.schemas.link import ( +from openg2p_g2pconnect_common_lib.mapper.schemas.link import ( SingleLinkResponse, ) -from ...config import Settings -from ...services import ( +from src.openg2p_spar_mapper_api.config import Settings +from src.openg2p_spar_mapper_api.services import ( RequestValidation, AsyncResponseHelper, MapperService, diff --git a/src/openg2p_spar_mapper_api/controllers/g2pconnect/__init__.py b/src/openg2p_spar_mapper_api/controllers/g2pconnect/__init__.py deleted file mode 100644 index af8d0e9..0000000 --- a/src/openg2p_spar_mapper_api/controllers/g2pconnect/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from .sync_mapper_controller import SyncMapperController -from .async_mapper_controller import AsyncMapperController diff --git a/src/openg2p_spar_mapper_api/controllers/g2pconnect/sync_mapper_controller.py b/src/openg2p_spar_mapper_api/controllers/sync_mapper_controller.py similarity index 66% rename from src/openg2p_spar_mapper_api/controllers/g2pconnect/sync_mapper_controller.py rename to src/openg2p_spar_mapper_api/controllers/sync_mapper_controller.py index 001079b..7739924 100644 --- a/src/openg2p_spar_mapper_api/controllers/g2pconnect/sync_mapper_controller.py +++ b/src/openg2p_spar_mapper_api/controllers/sync_mapper_controller.py @@ -3,16 +3,21 @@ Request, SyncResponse, ) -from openg2p_g2pconnect_common_lib.spar.schemas.link import ( +from openg2p_g2pconnect_common_lib.mapper.schemas.link import ( SingleLinkResponse, ) -from openg2p_g2pconnect_common_lib.spar.schemas.update import ( +from openg2p_g2pconnect_common_lib.mapper.schemas.update import ( SingleUpdateResponse, ) -from openg2p_g2pconnect_common_lib.spar.schemas.resolve import ( +from openg2p_g2pconnect_common_lib.mapper.schemas.resolve import ( SingleResolveResponse, ) -from ...services import RequestValidation, SyncResponseHelper, MapperService, RequestValidationException +from src.openg2p_spar_mapper_api.services import ( + RequestValidation, + SyncResponseHelper, + MapperService, + RequestValidationException, +) class SyncMapperController(BaseController): @@ -55,8 +60,10 @@ async def link_sync(self, request: Request): RequestValidation.validate_request(request) RequestValidation.validate_link_request_header(request) except RequestValidationException as e: - error_response = SyncResponseHelper.get_component().construct_error_sync_response( - request, e + error_response = ( + SyncResponseHelper.get_component().construct_error_sync_response( + request, e + ) ) return error_response @@ -74,17 +81,21 @@ async def update_sync(self, request: Request): RequestValidation.validate_request(request) RequestValidation.validate_update_request_header(request) except RequestValidationException as e: - error_response = SyncResponseHelper.get_component().construct_error_sync_response( - request, e + error_response = ( + SyncResponseHelper.get_component().construct_error_sync_response( + request, e + ) ) return error_response single_update_responses: list[SingleUpdateResponse] = ( await self.mapper_service.update(request) ) - return SyncResponseHelper.get_component().construct_success_sync_update_response( - request, - single_update_responses, + return ( + SyncResponseHelper.get_component().construct_success_sync_update_response( + request, + single_update_responses, + ) ) async def resolve_sync(self, request: Request): @@ -92,17 +103,21 @@ async def resolve_sync(self, request: Request): RequestValidation.validate_request(request) RequestValidation.validate_resolve_request_header(request) except RequestValidationException as e: - error_response = SyncResponseHelper.get_component().construct_error_sync_response( - request, e + error_response = ( + SyncResponseHelper.get_component().construct_error_sync_response( + request, e + ) ) return error_response single_resolve_responses: list[SingleResolveResponse] = ( await self.mapper_service.resolve(request) ) - return SyncResponseHelper.get_component().construct_success_sync_resolve_response( - request, - single_resolve_responses, + return ( + SyncResponseHelper.get_component().construct_success_sync_resolve_response( + request, + single_resolve_responses, + ) ) async def unlink_sync(self, request: Request): @@ -110,15 +125,19 @@ async def unlink_sync(self, request: Request): RequestValidation.validate_request(request) RequestValidation.validate_unlink_request_header(request) except RequestValidationException as e: - error_response = SyncResponseHelper.get_component().construct_error_sync_response( - request, e + error_response = ( + SyncResponseHelper.get_component().construct_error_sync_response( + request, e + ) ) return error_response single_unlink_responses: list[SingleResolveResponse] = ( await self.mapper_service.unlink(request) ) - return SyncResponseHelper.get_component().construct_success_sync_unlink_response( - request, - single_unlink_responses, + return ( + SyncResponseHelper.get_component().construct_success_sync_unlink_response( + request, + single_unlink_responses, + ) ) diff --git a/src/openg2p_spar_mapper_api/services/exceptions.py b/src/openg2p_spar_mapper_api/services/exceptions.py index 448adf7..6f69d20 100644 --- a/src/openg2p_spar_mapper_api/services/exceptions.py +++ b/src/openg2p_spar_mapper_api/services/exceptions.py @@ -1,6 +1,10 @@ from openg2p_g2pconnect_common_lib.common.schemas import StatusEnum -from openg2p_g2pconnect_common_lib.spar.schemas import LinkStatusReasonCode,ResolveStatusReasonCode,UpdateStatusReasonCode,UnlinkStatusReasonCode - +from openg2p_g2pconnect_common_lib.mapper.schemas import ( + LinkStatusReasonCode, + ResolveStatusReasonCode, + UpdateStatusReasonCode, + UnlinkStatusReasonCode, +) class LinkValidationException(Exception): @@ -34,6 +38,7 @@ def __init__(self, message, status, validation_error_type: UnlinkStatusReasonCod self.status: StatusEnum = status self.validation_error_type: UnlinkStatusReasonCode = validation_error_type + class RequestValidationException(Exception): # TODO : Add code def __init__(self, code, message): diff --git a/src/openg2p_spar_mapper_api/services/id_fa_mapping_validations.py b/src/openg2p_spar_mapper_api/services/id_fa_mapping_validations.py index bdba084..9b21196 100644 --- a/src/openg2p_spar_mapper_api/services/id_fa_mapping_validations.py +++ b/src/openg2p_spar_mapper_api/services/id_fa_mapping_validations.py @@ -1,10 +1,10 @@ -from openg2p_g2pconnect_common_lib.spar.schemas.resolve import ( +from openg2p_g2pconnect_common_lib.mapper.schemas.resolve import ( SingleResolveRequest, ResolveStatusReasonCode, ) from openg2p_fastapi_common.service import BaseService -from openg2p_g2pconnect_common_lib.spar.schemas import ( +from openg2p_g2pconnect_common_lib.mapper.schemas import ( LinkStatusReasonCode, SingleUpdateRequest, UpdateStatusReasonCode, @@ -20,7 +20,7 @@ LinkValidationException, UpdateValidationException, ResolveValidationException, - UnlinkValidationException + UnlinkValidationException, ) from ..models import IdFaMapping @@ -139,18 +139,18 @@ async def validate_resolve_request( validation_error_type=ResolveStatusReasonCode.rjct_reference_id_duplicate, ) return None - + @staticmethod async def validate_unlink_request( connection, single_unlink_request: SingleUnlinkRequest ) -> None: - + if not single_unlink_request.id: raise UnlinkValidationException( message="ID is null", validation_error_type=UnlinkValidationException.rjct_id_invalid, ) - + if not single_unlink_request.fa: raise UnlinkValidationException( message="FA is null", @@ -172,4 +172,4 @@ async def validate_unlink_request( validation_error_type=UnlinkStatusReasonCode.rjct_reference_id_duplicate, ) - return None \ No newline at end of file + return None diff --git a/src/openg2p_spar_mapper_api/services/mapper.py b/src/openg2p_spar_mapper_api/services/mapper.py index 4cb7668..aed7129 100644 --- a/src/openg2p_spar_mapper_api/services/mapper.py +++ b/src/openg2p_spar_mapper_api/services/mapper.py @@ -1,7 +1,7 @@ import logging from datetime import datetime -from openg2p_g2pconnect_common_lib.spar.schemas.resolve import ( +from openg2p_g2pconnect_common_lib.mapper.schemas.resolve import ( ResolveStatusReasonCode, ResolveScope, ) @@ -9,7 +9,7 @@ from openg2p_fastapi_common.context import dbengine from openg2p_fastapi_common.service import BaseService from openg2p_g2pconnect_common_lib.common.schemas import Request, StatusEnum -from openg2p_g2pconnect_common_lib.spar.schemas import ( +from openg2p_g2pconnect_common_lib.mapper.schemas import ( SingleLinkResponse, SingleUpdateResponse, SingleResolveResponse, @@ -20,7 +20,7 @@ UpdateStatusReasonCode, UnlinkRequest, SingleUnlinkResponse, - UnlinkStatusReasonCode + UnlinkStatusReasonCode, ) from sqlalchemy.ext.asyncio import async_sessionmaker from sqlalchemy import and_, select @@ -413,6 +413,7 @@ def unlink_id_fa_mapping(single_unlink_request): additional_info=single_unlink_request.additional_info, active=True, ) + @staticmethod def construct_single_unlink_response_for_success(single_unlink_request): return SingleUnlinkResponse( @@ -438,4 +439,4 @@ def construct_single_unlink_response_for_failure(single_unlink_request, error): status_reason_message=error.message, additional_info=None, locale=single_unlink_request.locale, - ) \ No newline at end of file + ) diff --git a/src/openg2p_spar_mapper_api/services/request_helper.py b/src/openg2p_spar_mapper_api/services/request_helper.py index b4f54ac..ff0302f 100644 --- a/src/openg2p_spar_mapper_api/services/request_helper.py +++ b/src/openg2p_spar_mapper_api/services/request_helper.py @@ -4,7 +4,7 @@ from openg2p_g2pconnect_common_lib.common.schemas import ( Request, ) -from openg2p_g2pconnect_common_lib.spar.schemas.link import ( +from openg2p_g2pconnect_common_lib.mapper.schemas.link import ( LinkRequest, ) diff --git a/src/openg2p_spar_mapper_api/services/response_helper.py b/src/openg2p_spar_mapper_api/services/response_helper.py index dc18fa2..ae5cf45 100644 --- a/src/openg2p_spar_mapper_api/services/response_helper.py +++ b/src/openg2p_spar_mapper_api/services/response_helper.py @@ -12,7 +12,7 @@ AsyncCallbackRequestHeader, AsyncAck, ) -from openg2p_g2pconnect_common_lib.spar.schemas import ( +from openg2p_g2pconnect_common_lib.mapper.schemas import ( LinkResponse, LinkRequest, SingleLinkResponse, @@ -36,7 +36,7 @@ LinkValidationException, UpdateValidationException, ResolveValidationException, - UnlinkValidationException + UnlinkValidationException, ) @@ -180,7 +180,7 @@ def construct_success_sync_unlink_response( request: Request, single_unlink_responses: list[SingleUnlinkResponse], ) -> SyncResponse: - unlinkRequest: UnlinkRequest = UnlinkRequest.model_validate(request.message) + unlinkRequest: UnlinkRequest = UnlinkRequest.model_validate(request.message) unlinkResponse: UnlinkResponse = UnlinkResponse( transaction_id=unlinkRequest.transaction_id, correlation_id=None,