validations endpoint build started
This commit is contained in:
parent
f7eedb5ea0
commit
9276740e0e
|
|
@ -6,16 +6,8 @@
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="b5202e0c-6ddf-4a56-a13a-e18798c4c7cf" name="Changes" comment="">
|
<list default="true" id="b5202e0c-6ddf-4a56-a13a-e18798c4c7cf" name="Changes" comment="">
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/ApiLayers/ApiServices/Token/token_handler.py" beforeDir="false" afterPath="$PROJECT_DIR$/ApiLayers/ApiServices/Token/token_handler.py" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Events/AllEvents/validations/validation/endpoints.py" beforeDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/ApiLayers/LanguageModels/Response/authentication/auth.py" beforeDir="false" afterPath="$PROJECT_DIR$/ApiLayers/LanguageModels/Response/authentication/auth.py" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Events/AllEvents/validations/validation/models.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/validations/validation/models.py" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Events/AllEvents/authentication/auth/api_events.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/authentication/auth/api_events.py" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Events/AllEvents/authentication/auth/auth.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/authentication/auth/auth.py" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Events/AllEvents/authentication/auth/function_handlers.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/authentication/auth/function_handlers.py" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Events/AllEvents/authentication/auth/info.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/authentication/auth/info.py" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Events/AllEvents/authentication/auth/models.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/AllEvents/authentication/auth/models.py" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Events/Engine/abstract_class.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/Engine/abstract_class.py" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Events/base_request_model.py" beforeDir="false" afterPath="$PROJECT_DIR$/Events/base_request_model.py" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Services/Redis/Models/access.py" beforeDir="false" afterPath="$PROJECT_DIR$/Services/Redis/Models/access.py" afterDir="false" />
|
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
|
@ -40,16 +32,17 @@
|
||||||
<option name="hideEmptyMiddlePackages" value="true" />
|
<option name="hideEmptyMiddlePackages" value="true" />
|
||||||
<option name="showLibraryContents" value="true" />
|
<option name="showLibraryContents" value="true" />
|
||||||
</component>
|
</component>
|
||||||
<component name="PropertiesComponent">{
|
<component name="PropertiesComponent"><![CDATA[{
|
||||||
"keyToString": {
|
"keyToString": {
|
||||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||||
"RunOnceActivity.git.unshallow": "true",
|
"RunOnceActivity.git.unshallow": "true",
|
||||||
"git-widget-placeholder": "development",
|
"git-widget-placeholder": "development",
|
||||||
"last_opened_file_path": "/home/berkay/git-gitea-evyos/wag-managment-api-service-version-5/ApiLayers/LanguageModels/templates"
|
"last_opened_file_path": "/home/berkay/git-gitea-evyos/wag-managment-api-service-version-5/Events/AllEvents/template/template"
|
||||||
}
|
}
|
||||||
}</component>
|
}]]></component>
|
||||||
<component name="RecentsManager">
|
<component name="RecentsManager">
|
||||||
<key name="CopyFile.RECENT_KEYS">
|
<key name="CopyFile.RECENT_KEYS">
|
||||||
|
<recent name="$PROJECT_DIR$/Events/AllEvents/template/template" />
|
||||||
<recent name="$PROJECT_DIR$/ApiLayers/LanguageModels/templates" />
|
<recent name="$PROJECT_DIR$/ApiLayers/LanguageModels/templates" />
|
||||||
</key>
|
</key>
|
||||||
<key name="MoveFile.RECENT_KEYS">
|
<key name="MoveFile.RECENT_KEYS">
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
from Events.Engine.abstract_class import Event
|
||||||
|
from ApiLayers.LanguageModels.Request import (
|
||||||
|
LoginRequestLanguageModel,
|
||||||
|
)
|
||||||
|
|
||||||
|
from models import TemplateResponseModels, TemplateRequestModels
|
||||||
|
from function_handlers import TemplateFunctions
|
||||||
|
|
||||||
|
|
||||||
|
# Auth Login
|
||||||
|
template_event = Event(
|
||||||
|
name="authentication_login_super_user_event",
|
||||||
|
key="a5d2d0d1-3e9b-4b0f-8c7d-6d4a4b4c4d4e",
|
||||||
|
request_validator=TemplateRequestModels.TemplateRequestModelX,
|
||||||
|
language_models=[LoginRequestLanguageModel],
|
||||||
|
response_validation_static="LOGIN_SUCCESS",
|
||||||
|
description="Login super user",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
template_event.endpoint_callable = (
|
||||||
|
TemplateFunctions.template_example_function()
|
||||||
|
)
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
from Events.Engine.abstract_class import CategoryCluster
|
||||||
|
from info import template_page_info
|
||||||
|
|
||||||
|
|
||||||
|
TemplateCluster = CategoryCluster(
|
||||||
|
name="TemplateCluster",
|
||||||
|
tags=["template"],
|
||||||
|
prefix="/template",
|
||||||
|
description="Template cluster",
|
||||||
|
pageinfo=template_page_info,
|
||||||
|
endpoints={},
|
||||||
|
include_in_schema=True,
|
||||||
|
sub_category=[],
|
||||||
|
)
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
from typing import Any, Union
|
||||||
|
from fastapi import Request
|
||||||
|
|
||||||
|
from Events.base_request_model import TokenDictType, BaseRouteModel
|
||||||
|
|
||||||
|
|
||||||
|
class Handlers:
|
||||||
|
"""Class for handling authentication functions"""
|
||||||
|
|
||||||
|
@classmethod # Requires no auth context
|
||||||
|
def handle_function(cls, **kwargs):
|
||||||
|
"""Handle function with kwargs"""
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
class TemplateFunctions(BaseRouteModel):
|
||||||
|
"""Class for handling authentication functions"""
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def template_example_function(cls):
|
||||||
|
return
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
from Events.Engine.abstract_class import PageInfo
|
||||||
|
|
||||||
|
|
||||||
|
template_page_info = PageInfo(
|
||||||
|
name="template",
|
||||||
|
title={"en": "template"},
|
||||||
|
description={"en": "template"},
|
||||||
|
icon="",
|
||||||
|
parent="",
|
||||||
|
url=""
|
||||||
|
)
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
from ApiLayers.ApiValidations.Request import (
|
||||||
|
BaseModelRegular
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class TemplateRequestModels:
|
||||||
|
TemplateRequestModelX = BaseModelRegular
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class TemplateResponseModels:
|
||||||
|
TemplateResponseModelsX = BaseModelRegular
|
||||||
|
|
@ -0,0 +1,39 @@
|
||||||
|
"""
|
||||||
|
template related API endpoints.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from typing import Any, Dict
|
||||||
|
from fastapi import Request
|
||||||
|
|
||||||
|
from Events.Engine.abstract_class import MethodToEvent
|
||||||
|
from Events.base_request_model import EndpointBaseRequestModel, ContextRetrievers
|
||||||
|
from api_events import template_event
|
||||||
|
|
||||||
|
|
||||||
|
AuthenticationLoginEventMethods = MethodToEvent(
|
||||||
|
name="AuthenticationLoginEventMethods",
|
||||||
|
events={
|
||||||
|
template_event.key: template_event,
|
||||||
|
},
|
||||||
|
headers=[],
|
||||||
|
errors=[],
|
||||||
|
url="/login",
|
||||||
|
method="POST",
|
||||||
|
summary="Login via domain and access key : [email] | [phone]",
|
||||||
|
description="Login to the system via domain, access key : [email] | [phone]",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def authentication_login_with_domain_and_creds_endpoint(
|
||||||
|
request: Request, data: EndpointBaseRequestModel
|
||||||
|
) -> Dict[str, Any]:
|
||||||
|
event_2_catch = AuthenticationLoginEventMethods.retrieve_event(
|
||||||
|
event_function_code=f"{template_event.key}"
|
||||||
|
)
|
||||||
|
data = event_2_catch.REQUEST_VALIDATOR(**data.data)
|
||||||
|
return event_2_catch.endpoint_callable(request=request, data=data)
|
||||||
|
|
||||||
|
|
||||||
|
AuthenticationLoginEventMethods.endpoint_callable = (
|
||||||
|
authentication_login_with_domain_and_creds_endpoint
|
||||||
|
)
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
from Events.Engine.abstract_class import Event
|
||||||
|
from ApiLayers.LanguageModels.Request import (
|
||||||
|
LoginRequestLanguageModel,
|
||||||
|
)
|
||||||
|
|
||||||
|
from models import TemplateResponseModels, TemplateRequestModels
|
||||||
|
from function_handlers import TemplateFunctions
|
||||||
|
|
||||||
|
|
||||||
|
# Auth Login
|
||||||
|
template_event = Event(
|
||||||
|
name="authentication_login_super_user_event",
|
||||||
|
key="a5d2d0d1-3e9b-4b0f-8c7d-6d4a4b4c4d4e",
|
||||||
|
request_validator=TemplateRequestModels.TemplateRequestModelX,
|
||||||
|
language_models=[LoginRequestLanguageModel],
|
||||||
|
response_validation_static="LOGIN_SUCCESS",
|
||||||
|
description="Login super user",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
template_event.endpoint_callable = (
|
||||||
|
TemplateFunctions.template_example_function()
|
||||||
|
)
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
from Events.Engine.abstract_class import CategoryCluster
|
||||||
|
from info import template_page_info
|
||||||
|
|
||||||
|
|
||||||
|
TemplateCluster = CategoryCluster(
|
||||||
|
name="TemplateCluster",
|
||||||
|
tags=["template"],
|
||||||
|
prefix="/template",
|
||||||
|
description="Template cluster",
|
||||||
|
pageinfo=template_page_info,
|
||||||
|
endpoints={},
|
||||||
|
include_in_schema=True,
|
||||||
|
sub_category=[],
|
||||||
|
)
|
||||||
|
|
@ -1,128 +0,0 @@
|
||||||
from typing import Dict, Any
|
|
||||||
|
|
||||||
from .models import ValidationsPydantic
|
|
||||||
from ErrorHandlers.Exceptions.api_exc import HTTPExceptionApi
|
|
||||||
|
|
||||||
from .validation import (
|
|
||||||
ValidationsBoth,
|
|
||||||
ValidationsHeaders,
|
|
||||||
ValidationsValidations,
|
|
||||||
)
|
|
||||||
from ApiEvents.abstract_class import RouteFactoryConfig, EndpointFactoryConfig
|
|
||||||
from ApiEvents.base_request_model import EndpointBaseRequestModel
|
|
||||||
from ApiLibrary.common.line_number import get_line_number_for_error
|
|
||||||
|
|
||||||
from Services.PostgresDb.Models.alchemy_response import DictJsonResponse
|
|
||||||
from fastapi import Request, Path, Body
|
|
||||||
|
|
||||||
from middleware.token_event_middleware import TokenEventMiddleware
|
|
||||||
|
|
||||||
|
|
||||||
prefix = "/validation"
|
|
||||||
|
|
||||||
|
|
||||||
@TokenEventMiddleware.validation_required
|
|
||||||
async def validations_validations_select(
|
|
||||||
request: Request, data: EndpointBaseRequestModel
|
|
||||||
) -> Dict[str, Any]:
|
|
||||||
"""
|
|
||||||
Select validations.
|
|
||||||
"""
|
|
||||||
wrapped_context = getattr(validations_validations_select, "__wrapped__", None)
|
|
||||||
auth_context = getattr(wrapped_context, "auth", None)
|
|
||||||
validation_code = getattr(
|
|
||||||
validations_validations_select, "validation_code", {"validation_code": None}
|
|
||||||
)
|
|
||||||
if not validation_code:
|
|
||||||
raise HTTPExceptionApi(
|
|
||||||
error_code="",
|
|
||||||
lang="en",
|
|
||||||
loc=get_line_number_for_error(),
|
|
||||||
sys_msg="Validation code not found",
|
|
||||||
)
|
|
||||||
validations_pydantic = ValidationsPydantic(
|
|
||||||
class_model=validation_code.get("class", None),
|
|
||||||
reachable_event_code=validation_code.get("reachable_event_code", None),
|
|
||||||
lang=getattr(auth_context, "lang", None),
|
|
||||||
)
|
|
||||||
validations_both = ValidationsBoth.retrieve_both_validations_and_headers(
|
|
||||||
validations_pydantic
|
|
||||||
)
|
|
||||||
return {"status": "OK", "validation_code": validation_code, **validations_both}
|
|
||||||
|
|
||||||
|
|
||||||
@TokenEventMiddleware.validation_required
|
|
||||||
async def validations_headers_select(
|
|
||||||
request: Request, data: EndpointBaseRequestModel
|
|
||||||
) -> Dict[str, Any]:
|
|
||||||
"""
|
|
||||||
Select headers.
|
|
||||||
"""
|
|
||||||
ValidationsHeaders.retrieve_headers()
|
|
||||||
return {
|
|
||||||
"status": "OK",
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@TokenEventMiddleware.validation_required
|
|
||||||
async def validations_validations_and_headers_select(
|
|
||||||
request: Request, data: EndpointBaseRequestModel
|
|
||||||
) -> Dict[str, Any]:
|
|
||||||
"""
|
|
||||||
Select validations and headers.
|
|
||||||
"""
|
|
||||||
ValidationsBoth.retrieve_both_validations_and_headers()
|
|
||||||
return {
|
|
||||||
"status": "OK",
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
VALIDATION_CONFIG_MAIN = RouteFactoryConfig(
|
|
||||||
name="validations",
|
|
||||||
prefix=prefix,
|
|
||||||
tags=["Validation"],
|
|
||||||
include_in_schema=True,
|
|
||||||
endpoints=[
|
|
||||||
EndpointFactoryConfig(
|
|
||||||
url_prefix=prefix,
|
|
||||||
url_endpoint="/select",
|
|
||||||
url_of_endpoint=f"{prefix}/validations/select",
|
|
||||||
endpoint="/select",
|
|
||||||
method="POST",
|
|
||||||
summary="Select company or occupant type",
|
|
||||||
description="Select company or occupant type",
|
|
||||||
is_auth_required=True, # Needs token_dict
|
|
||||||
is_event_required=False,
|
|
||||||
endpoint_function=validations_validations_select,
|
|
||||||
),
|
|
||||||
EndpointFactoryConfig(
|
|
||||||
url_prefix=prefix,
|
|
||||||
url_endpoint="/headers/select",
|
|
||||||
url_of_endpoint=f"{prefix}/headers/select",
|
|
||||||
endpoint="/headers/select",
|
|
||||||
method="POST",
|
|
||||||
summary="Select company or occupant type",
|
|
||||||
description="Select company or occupant type",
|
|
||||||
is_auth_required=True, # Needs token_dict
|
|
||||||
is_event_required=False,
|
|
||||||
endpoint_function=validations_headers_select,
|
|
||||||
),
|
|
||||||
EndpointFactoryConfig(
|
|
||||||
url_prefix=prefix,
|
|
||||||
url_endpoint="/both/select",
|
|
||||||
url_of_endpoint=f"{prefix}/validationsAndHeaders/select",
|
|
||||||
endpoint="/both/select",
|
|
||||||
method="POST",
|
|
||||||
summary="Select company or occupant type",
|
|
||||||
description="Select company or occupant type",
|
|
||||||
is_auth_required=True, # Needs token_dict
|
|
||||||
is_event_required=False,
|
|
||||||
endpoint_function=validations_validations_and_headers_select,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
VALIDATION_CONFIG = VALIDATION_CONFIG_MAIN.as_dict()
|
|
||||||
|
|
||||||
VALIDATION_ENDPOINTS = [
|
|
||||||
endpoint.url_of_endpoint for endpoint in VALIDATION_CONFIG_MAIN.endpoints
|
|
||||||
]
|
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
from typing import Any, Union
|
||||||
|
from fastapi import Request
|
||||||
|
|
||||||
|
from Events.base_request_model import TokenDictType, BaseRouteModel
|
||||||
|
|
||||||
|
|
||||||
|
class Handlers:
|
||||||
|
"""Class for handling authentication functions"""
|
||||||
|
|
||||||
|
@classmethod # Requires no auth context
|
||||||
|
def handle_function(cls, **kwargs):
|
||||||
|
"""Handle function with kwargs"""
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
class TemplateFunctions(BaseRouteModel):
|
||||||
|
"""Class for handling authentication functions"""
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def template_example_function(cls):
|
||||||
|
return
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
from Events.Engine.abstract_class import PageInfo
|
||||||
|
|
||||||
|
|
||||||
|
template_page_info = PageInfo(
|
||||||
|
name="template",
|
||||||
|
title={"en": "template"},
|
||||||
|
description={"en": "template"},
|
||||||
|
icon="",
|
||||||
|
parent="",
|
||||||
|
url=""
|
||||||
|
)
|
||||||
|
|
@ -4,12 +4,7 @@ Validation records request and response models.
|
||||||
|
|
||||||
from typing import TYPE_CHECKING, Dict, Any
|
from typing import TYPE_CHECKING, Dict, Any
|
||||||
from pydantic import BaseModel, Field, RootModel
|
from pydantic import BaseModel, Field, RootModel
|
||||||
from ApiEvents.base_request_model import BaseRequestModel
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
|
||||||
from ApiValidations.Request import (
|
|
||||||
ListOptions,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class ValidationsPydantic(BaseModel):
|
class ValidationsPydantic(BaseModel):
|
||||||
|
|
@ -18,13 +13,13 @@ class ValidationsPydantic(BaseModel):
|
||||||
lang: str
|
lang: str
|
||||||
|
|
||||||
|
|
||||||
class InsertValidationRecordRequestModel(BaseRequestModel):
|
class InsertValidationRecordRequestModel:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class UpdateValidationRecordRequestModel(BaseRequestModel):
|
class UpdateValidationRecordRequestModel:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class ListOptionsValidationRecordRequestModel(BaseRequestModel):
|
class ListOptionsValidationRecordRequestModel:
|
||||||
pass
|
pass
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue