From 1b15b77036bf3646c7056ec7c0eb69b9753171fb Mon Sep 17 00:00:00 2001 From: berkay Date: Wed, 11 Dec 2024 19:54:36 +0300 Subject: [PATCH] updated response models and event validations --- api_configs/configs.py | 2 +- api_events/events/building/building_build.py | 7 + api_validations/core_response.py | 1 + .../validations_request/__init__.py | 14 +- .../validations_request/building.py | 3 + .../core_request_validations.py | 22 ++- .../project_decision_book.py | 174 +++++++++++++++++- .../validations_request/services.py | 28 ++- api_validations/validations_request/staff.py | 28 ++- api_validations/validations_request/user.py | 64 +++++-- .../validations_response/__init__.py | 5 + .../validations_response/building.py | 123 +++++++++++++ service_app/routers/validations/router.py | 84 +++------ 13 files changed, 453 insertions(+), 102 deletions(-) create mode 100644 api_validations/validations_response/building.py diff --git a/api_configs/configs.py b/api_configs/configs.py index 5a322a0..b4ba886 100644 --- a/api_configs/configs.py +++ b/api_configs/configs.py @@ -32,7 +32,7 @@ class Config: "/authentication/valid", "/api/Contact/Us/current_date", ] - NOT_SECURE_PATHS = ["/access/endpoints/available"] + NOT_SECURE_PATHS = ["/access/endpoints/available", "/validations/endpoint"] APP_NAME = "evyos-web-api-gateway" TITLE = "WAG API Web Api Gateway" diff --git a/api_events/events/building/building_build.py b/api_events/events/building/building_build.py index 3a7fc38..ae706d6 100644 --- a/api_events/events/building/building_build.py +++ b/api_events/events/building/building_build.py @@ -19,6 +19,9 @@ from api_validations.validations_request import ( PatchRecord, ListOptions, ) +from api_validations.validations_response import ( + ListBuildingResponse +) from api_validations.core_response import AlchemyJsonResponse from api_events.events.abstract_class import MethodToEvent, ActionsSchema @@ -34,6 +37,9 @@ class BuildListEventMethods(MethodToEvent): __event_keys__ = { "68b3b5ed-b74c-4a27-820f-3959214e94e9": "build_list", } + __event_validation__ = { + "68b3b5ed-b74c-4a27-820f-3959214e94e9": ListBuildingResponse, + } @classmethod def build_list( @@ -55,6 +61,7 @@ class BuildListEventMethods(MethodToEvent): completed=True, message="Building Records are listed", result=records, + response_model=ListBuildingResponse, ) diff --git a/api_validations/core_response.py b/api_validations/core_response.py index 04af28f..5f5e8d2 100644 --- a/api_validations/core_response.py +++ b/api_validations/core_response.py @@ -25,6 +25,7 @@ class AlchemyJsonResponse: cls.message = message cls.result = result cls.completed = completed + cls.response_model = response_model if isinstance(cls.result, dict) or isinstance(cls.result, list): return JSONResponse( diff --git a/api_validations/validations_request/__init__.py b/api_validations/validations_request/__init__.py index 385de84..e58060d 100644 --- a/api_validations/validations_request/__init__.py +++ b/api_validations/validations_request/__init__.py @@ -7,6 +7,7 @@ from .core_request_validations import ( BaseModelRegular, PydanticBaseModelValidation, CrudRecordValidation, + CrudRecords, ) from .address import ( InsertAddress, @@ -103,7 +104,6 @@ from .events import ( from .people import ( UpdatePerson, InsertPerson, - ResponsePersonSalesMange, ) from .project_decision_book import ( InsertBuildDecisionBookProjectItemDebits, @@ -133,9 +133,9 @@ from .user import ( InsertUsers, UpdateUsers, QueryUsers, - ActiveUsers, - ListUsers, - DeleteUsers, + # ActiveUsers, + # ListUsers, + # DeleteUsers, ) from .modules import ( RegisterModules2Occupant, @@ -148,6 +148,7 @@ __all__ = [ "EndpointValidation", "PydanticBaseModelValidation", "CrudRecordValidation", + "CrudRecords", "PydanticBaseModel", "PatchRecord", "EndpointPydantic", @@ -214,12 +215,10 @@ __all__ = [ "InsertCompanyDuty", "UpdateCompanyEmployeesSalaries", "UpdateCompanyDuty", - # "CreateEvents", "RegisterEvents2Employee", "RegisterEvents2Occupant", "UpdatePerson", "InsertPerson", - "ResponsePersonSalesMange", "InsertBuildDecisionBookProjectItems", "UpdateBuildDecisionBookProjectItems", "ApprovalsBuildDecisionBookProjects", @@ -239,9 +238,6 @@ __all__ = [ "InsertUsers", "UpdateUsers", "QueryUsers", - "ActiveUsers", - "ListUsers", - "DeleteUsers", "RegisterModules2Occupant", "RegisterModules2Employee", ] diff --git a/api_validations/validations_request/building.py b/api_validations/validations_request/building.py index bf7fb9b..625f0e7 100644 --- a/api_validations/validations_request/building.py +++ b/api_validations/validations_request/building.py @@ -3,11 +3,13 @@ from api_validations.core_validations import BaseModelRegular from api_validations.validations_request import ( PydanticBaseModel, PydanticBaseModelValidation, + CrudRecordValidation, ListOptions, ) class BuildValidation: tr = { + **CrudRecordValidation.tr, "gov_address_code": "Devlet Adres Kodu", "build_name": "Bina Adı", "build_types_uu_id": "Bina Tipi", @@ -26,6 +28,7 @@ class BuildValidation: "garage_count": "Garaj Sayısı", } en = { + **CrudRecordValidation.en, "gov_address_code": "Government Address Code", "build_name": "Building Name", "build_types_uu_id": "Building Type", diff --git a/api_validations/validations_request/core_request_validations.py b/api_validations/validations_request/core_request_validations.py index 977b47f..cb3c51e 100644 --- a/api_validations/validations_request/core_request_validations.py +++ b/api_validations/validations_request/core_request_validations.py @@ -22,7 +22,7 @@ class ListOptionsValidation: } -class ListOptions(BaseModelRegular): +class ListOptions(BaseModelRegular, ListOptionsValidation): page: Optional[int] = 1 size: Optional[int] = 10 order_field: Optional[str] = "id" @@ -34,33 +34,45 @@ class ListOptions(BaseModelRegular): class CrudRecordValidation: tr = { "uu_id": "UUID", - "ref_id": "Ref ID", "created_at": "Oluşturulma Tarihi", "updated_at": "Güncellenme Tarihi", "created_by": "Oluşturan", "updated_by": "Güncelleyen", "confirmed_by": "Onaylayan", "is_confirmed": "Onay", - "deleted": "Silinmiş", + "expiry_starts": "Geçerlilik Başlangıç Tarihi", + "expiry_ends": "Geçerlilik Bitiş Tarihi", "active": "Aktif", "is_notification_send": "Bildirim Gönderildi", "is_email_send": "E-posta Gönderildi", } en = { "uu_id": "UUID", - "ref_id": "Ref ID", "created_at": "Created At", "updated_at": "Updated At", "created_by": "Created By", "updated_by": "Updated By", "confirmed_by": "Confirmed By", "is_confirmed": "Confirmed", - "deleted": "Deleted", + "expiry_starts": "Expiry Starts", + "expiry_ends": "Expiry Ends", "active": "Active", "is_notification_send": "Notification Send", "is_email_send": "Email Send", } +class CrudRecords: + uu_id: Optional[str] = None + created_at: Optional[str] = None + updated_at: Optional[str] = None + created_by: Optional[str] = None + updated_by: Optional[str] = None + confirmed_by: Optional[str] = None + is_confirmed: Optional[bool] = None + active: Optional[bool] = None + is_notification_send: Optional[bool] = None + is_email_send: Optional[bool] = None + class PydanticBaseModelValidation: tr = { diff --git a/api_validations/validations_request/project_decision_book.py b/api_validations/validations_request/project_decision_book.py index d63ac9b..5435f90 100644 --- a/api_validations/validations_request/project_decision_book.py +++ b/api_validations/validations_request/project_decision_book.py @@ -2,10 +2,28 @@ from typing import Optional from api_validations.core_validations import BaseModelRegular from api_validations.validations_request import ( PydanticBaseModel, + PydanticBaseModelValidation, ) -class InsertBuildDecisionBookProjectItems(BaseModelRegular): +class InsertBuildDecisionBookProjectItemsValidation: + tr = { + "build_decision_book_project_uu_id": "Proje UUID", + "item_header": "Başlık", + "item_comment": "Açıklama", + "attachment_pdf_path": "Ek Dosya Yolu", + "item_objection": "İtiraz", + } + en = { + "build_decision_book_project_uu_id": "Project UUID", + "item_header": "Header", + "item_comment": "Comment", + "attachment_pdf_path": "Attachment PDF Path", + "item_objection": "Objection", + } + + +class InsertBuildDecisionBookProjectItems(BaseModelRegular, InsertBuildDecisionBookProjectItemsValidation): build_decision_book_project_uu_id: str item_header: str item_comment: str @@ -13,6 +31,17 @@ class InsertBuildDecisionBookProjectItems(BaseModelRegular): item_objection: Optional[str] = None +class UpdateBuildDecisionBookProjectItemsValidation: + tr = { + **InsertBuildDecisionBookProjectItemsValidation.tr, + **PydanticBaseModelValidation.tr + } + en = { + **InsertBuildDecisionBookProjectItemsValidation.en, + **PydanticBaseModelValidation.en + } + + class UpdateBuildDecisionBookProjectItems(PydanticBaseModel): item_header: Optional[str] = None item_comment: Optional[str] = None @@ -21,7 +50,28 @@ class UpdateBuildDecisionBookProjectItems(PydanticBaseModel): build_decision_book_project_uu_id: Optional[str] = None -class InsertBuildDecisionBookProjectPerson(BaseModelRegular): +class InsertBuildDecisionBookProjectPersonValidation: + tr = { + "dues_percent_discount": "İskonto Oranı", + "job_fix_wage": "Sabit Ücret", + "bid_price": "Teklif Fiyatı", + "decision_price": "Karar Fiyatı", + "build_decision_book_project_uu_id": "Proje UUID", + "living_space_uu_id": "Yaşam Alanı UUID", + "project_team_type_uu_id": "Proje Takım Tipi UUID", + } + en = { + "dues_percent_discount": "Discount Rate", + "job_fix_wage": "Fixed Wage", + "bid_price": "Bid Price", + "decision_price": "Decision Price", + "build_decision_book_project_uu_id": "Project UUID", + "living_space_uu_id": "Living Space UUID", + "project_team_type_uu_id": "Project Team Type UUID", + } + + +class InsertBuildDecisionBookProjectPerson(BaseModelRegular, InsertBuildDecisionBookProjectPersonValidation): dues_percent_discount: Optional[int] = None job_fix_wage: Optional[float] = None bid_price: Optional[float] = None @@ -31,7 +81,18 @@ class InsertBuildDecisionBookProjectPerson(BaseModelRegular): project_team_type_uu_id: str -class UpdateBuildDecisionBookProjectPerson(PydanticBaseModel): +class UpdateBuildDecisionBookProjectPersonValidation: + tr = { + **InsertBuildDecisionBookProjectPersonValidation.tr, + **PydanticBaseModelValidation.tr + } + en = { + **InsertBuildDecisionBookProjectPersonValidation.en, + **PydanticBaseModelValidation.en + } + + +class UpdateBuildDecisionBookProjectPerson(PydanticBaseModel, UpdateBuildDecisionBookProjectPersonValidation): dues_percent_discount: Optional[int] = None job_fix_wage: Optional[float] = None bid_price: Optional[float] = None @@ -41,7 +102,46 @@ class UpdateBuildDecisionBookProjectPerson(PydanticBaseModel): project_team_type_uu_id: Optional[str] = None -class InsertBuildDecisionBookProjects(BaseModelRegular): +class InsertBuildDecisionBookProjectsValidation: + tr = { + "build_decision_book_item_uu_id": "Karar Defteri UUID", + "project_responsible_person_uu_id": "Proje Sorumlu Kişi UUID", + "project_name": "Proje Adı", + "project_start_date": "Proje Başlangıç Tarihi", + "project_stop_date": "Proje Bitiş Tarihi", + "project_type": "Proje Tipi", + "is_out_sourced": "Dış Kaynak Kullanımı", + "project_note": "Proje Notu", + "decision_book_pdf_path": "Karar Defteri PDF Yolu", + "resp_company_fix_wage": "Firma Sabit Ücreti", + "contact_agreement_path": "İletişim Anlaşması Yolu", + "contact_agreement_date": "İletişim Anlaşması Tarihi", + "meeting_date": "Toplantı Tarihi", + "currency": "Para Birimi", + "bid_price": "Teklif Fiyatı", + "resp_company_uu_id": "Firma UUID", + } + en = { + "build_decision_book_item_uu_id": "Decision Book UUID", + "project_responsible_person_uu_id": "Project Responsible Person UUID", + "project_name": "Project Name", + "project_start_date": "Project Start Date", + "project_stop_date": "Project Stop Date", + "project_type": "Project Type", + "is_out_sourced": "Out Sourced", + "project_note": "Project Note", + "decision_book_pdf_path": "Decision Book PDF Path", + "resp_company_fix_wage": "Company Fixed Wage", + "contact_agreement_path": "Contact Agreement Path", + "contact_agreement_date": "Contact Agreement Date", + "meeting_date": "Meeting Date", + "currency": "Currency", + "bid_price": "Bid Price", + "resp_company_uu_id": "Company UUID", + } + + +class InsertBuildDecisionBookProjects(BaseModelRegular, InsertBuildDecisionBookProjectsValidation): build_decision_book_item_uu_id: str project_responsible_person_uu_id: str project_name: str @@ -61,7 +161,18 @@ class InsertBuildDecisionBookProjects(BaseModelRegular): resp_company_uu_id: Optional[str] = None -class UpdateBuildDecisionBookProjects(PydanticBaseModel): +class UpdateBuildDecisionBookProjectsValidation: + tr = { + **InsertBuildDecisionBookProjectsValidation.tr, + **PydanticBaseModelValidation.tr + } + en = { + **InsertBuildDecisionBookProjectsValidation.en, + **PydanticBaseModelValidation.en + } + + +class UpdateBuildDecisionBookProjects(PydanticBaseModel, UpdateBuildDecisionBookProjectsValidation): build_decision_book_project_uu_id: str is_out_sourced: Optional[bool] = False project_note: Optional[str] = None @@ -75,7 +186,22 @@ class UpdateBuildDecisionBookProjects(PydanticBaseModel): approved_price: Optional[float] = None -class ApprovalsBuildDecisionBookProjects(PydanticBaseModel): +class ApprovalsBuildDecisionBookProjectsValidation: + tr = { + "build_decision_book_project_uu_id": "Karar Defteri Proje UUID", + "project_stop_date": "Proje Bitiş Tarihi", + "status_code": "Durum Kodu", + "final_price_list": "Son Fiyat Listesi", + } + en = { + "build_decision_book_project_uu_id": "Decision Book Project UUID", + "project_stop_date": "Project Stop Date", + "status_code": "Status Code", + "final_price_list": "Final Price List", + } + + +class ApprovalsBuildDecisionBookProjects(PydanticBaseModel, ApprovalsBuildDecisionBookProjectsValidation): build_decision_book_project_uu_id: str project_stop_date: str status_code: Optional[int] = None @@ -84,7 +210,28 @@ class ApprovalsBuildDecisionBookProjects(PydanticBaseModel): ) -class InsertBuildDecisionBookProjectItemDebits(PydanticBaseModel): +class InsertBuildDecisionBookProjectItemDebitsValidation: + tr = { + "build_decision_book_project_item_uu_id": "Karar Defteri Proje Öğe UUID", + "payment_date": "Ödeme Tarihi", + "dues_values": "Borç Değerleri", + "is_official": "Resmi Mi?", + "discount_value": "İskonto Oranı", + "discount_fix": "İskonto Sabit", + "decision_taken": "Karar Alındı Mı?", + } + en = { + "build_decision_book_project_item_uu_id": "Decision Book Project Item UUID", + "payment_date": "Payment Date", + "dues_values": "Dues Values", + "is_official": "Is Official?", + "discount_value": "Discount Rate", + "discount_fix": "Discount Fix", + "decision_taken": "Decision Taken?", + } + + +class InsertBuildDecisionBookProjectItemDebits(PydanticBaseModel, InsertBuildDecisionBookProjectItemDebitsValidation): build_decision_book_project_item_uu_id: str payment_date: str dues_values: dict @@ -94,7 +241,18 @@ class InsertBuildDecisionBookProjectItemDebits(PydanticBaseModel): decision_taken: Optional[bool] = None -class UpdateBuildDecisionBookProjectItemDebits(PydanticBaseModel): +class UpdateBuildDecisionBookProjectItemDebitsValidation: + tr = { + **InsertBuildDecisionBookProjectItemDebitsValidation.tr, + **PydanticBaseModelValidation.tr + } + en = { + **InsertBuildDecisionBookProjectItemDebitsValidation.en, + **PydanticBaseModelValidation.en + } + + +class UpdateBuildDecisionBookProjectItemDebits(PydanticBaseModel, UpdateBuildDecisionBookProjectItemDebitsValidation): dues_values: Optional[str] = None discount_value: Optional[float] = None discount_fix: Optional[float] = None diff --git a/api_validations/validations_request/services.py b/api_validations/validations_request/services.py index a3f25af..17c955b 100644 --- a/api_validations/validations_request/services.py +++ b/api_validations/validations_request/services.py @@ -5,12 +5,36 @@ from api_validations.validations_request import ( ) -class RegisterServices2Occupant(BaseModelRegular): +class RegisterServices2OccupantValidation: + tr = { + "service_uu_id": "Hizmet UUID", + "occupant_uu_id": "Müşteri UUID", + "build_part_uu_id": "Bina Parça UUID", + } + en = { + "service_uu_id": "Service UUID", + "occupant_uu_id": "Occupant UUID", + "build_part_uu_id": "Building Part UUID", + } + + +class RegisterServices2Occupant(BaseModelRegular, RegisterServices2OccupantValidation): service_uu_id: str occupant_uu_id: str build_part_uu_id: str -class RegisterServices2Employee(BaseModelRegular): +class RegisterServices2EmployeeValidation: + tr = { + "service_uu_id": "Hizmet UUID", + "employee_uu_id": "Personel UUID", + } + en = { + "service_uu_id": "Service UUID", + "employee_uu_id": "Employee UUID", + } + + +class RegisterServices2Employee(BaseModelRegular, RegisterServices2EmployeeValidation): service_uu_id: str employee_uu_id: str diff --git a/api_validations/validations_request/staff.py b/api_validations/validations_request/staff.py index 67c1d2e..de78c7d 100644 --- a/api_validations/validations_request/staff.py +++ b/api_validations/validations_request/staff.py @@ -5,16 +5,38 @@ from api_validations.validations_request import ( ListOptions, ) +class InsertStaffValidation: + tr = { + "staff_name": "Kadro Adı", + "staff_description": "Kadro Açıklaması", + "staff_code": "Kadro Kodu", + "duties_uu_id": "Görev UUID", + } + en = { + "staff_name": "Staff Name", + "staff_description": "Staff Description", + "staff_code": "Staff Code", + "duties_uu_id": "Duties UUID", + } -class InsertStaff(PydanticBaseModel): + +class InsertStaff(BaseModelRegular, InsertStaffValidation): staff_name: str staff_description: Optional[str] = None staff_code: Optional[str] = None - duties_uu_id: str -class SelectStaff(PydanticBaseModel): +class SelectStaffValidation: + tr = { + "duties_uu_id": "Görev UUID", + } + en = { + "duties_uu_id": "Duties UUID", + } + + +class SelectStaff(PydanticBaseModel, SelectStaffValidation): duties_uu_id: str diff --git a/api_validations/validations_request/user.py b/api_validations/validations_request/user.py index 91ced82..d12f651 100644 --- a/api_validations/validations_request/user.py +++ b/api_validations/validations_request/user.py @@ -6,7 +6,23 @@ from api_validations.validations_request import ( ) -class InsertUsers(PydanticBaseModel): +class InsertUsersValidation: + tr = { + "people_uu_id": "Kişi UUID", + "user_tag": "Kullanıcı Etiketi", + "email": "E-posta", + "phone_number": "Telefon Numarası", + "avatar": "Avatar", + } + en = { + "people_uu_id": "People UUID", + "user_tag": "User Tag", + "email": "Email", + "phone_number": "Phone Number", + "avatar": "Avatar", + } + +class InsertUsers(PydanticBaseModel, InsertUsersValidation): people_uu_id: str user_tag: str email: Optional[str] = None @@ -14,7 +30,25 @@ class InsertUsers(PydanticBaseModel): avatar: Optional[str] = None -class UpdateUsers(PydanticBaseModel): +class UpdateUsersValidation: + tr = { + "people_uu_id": "Kişi UUID", + "nick_name": "Kullanıcı Etiketi", + "domain_name": "Domain Adı", + "email": "E-posta", + "phone_number": "Telefon Numarası", + "avatar": "Avatar", + } + en = { + "people_uu_id": "People UUID", + "nick_name": "User Tag", + "domain_name": "Domain Name", + "email": "Email", + "phone_number": "Phone Number", + "avatar": "Avatar", + } + +class UpdateUsers(PydanticBaseModel, UpdateUsersValidation): people_uu_id: Optional[str] = None nick_name: Optional[str] = None domain_name: Optional[str] = None @@ -23,23 +57,13 @@ class UpdateUsers(PydanticBaseModel): avatar: Optional[str] = None +class QueryUsersValidation: + tr = { + "uu_id": "UUID", + } + en = { + "uu_id": "UUID", + } + class QueryUsers(PydanticBaseModel): uu_id: Optional[str] = None - - -class DeleteUsers(PydanticBaseModel): - key_id: Optional[str] = None - query: Optional[List[QueryUsers]] = None - data: Optional[dict] = None - - -class ListUsers(PydanticBaseModel): - key_id: Optional[str] = None - query: Optional[QueryUsers] = None - data: Optional[ListOptions] = None - - -class ActiveUsers(PydanticBaseModel): - key_id: Optional[str] = None - query: Optional[List[QueryUsers]] = None - data: Optional[dict] = None diff --git a/api_validations/validations_response/__init__.py b/api_validations/validations_response/__init__.py index e69de29..c579b96 100644 --- a/api_validations/validations_response/__init__.py +++ b/api_validations/validations_response/__init__.py @@ -0,0 +1,5 @@ +from .building import ListBuildingResponse + +__all__ = [ + "ListBuildingResponse", +] \ No newline at end of file diff --git a/api_validations/validations_response/building.py b/api_validations/validations_response/building.py new file mode 100644 index 0000000..7232f24 --- /dev/null +++ b/api_validations/validations_response/building.py @@ -0,0 +1,123 @@ +from typing import Optional +from api_validations.core_validations import BaseModelRegular +from api_validations.validations_request import ( + PydanticBaseModel, + PydanticBaseModelValidation, + CrudRecordValidation, + CrudRecords, +) + +class BuildListValidation: + tr = { + **CrudRecordValidation.tr, + "gov_address_code": "Devlet Adres Kodu", + "build_name": "Bina Adı", + "build_types_uu_id": "Bina Tipi", + "build_no": "Bina No", + "max_floor": "Kat Sayısı", + "underground_floor": "Bodrum Kat Sayısı", + "address_uu_id": "Adres", + "build_date": "Yapım Tarihi", + "decision_period_date": "Karar Tarihi", + "tax_no": "Vergi No", + "lift_count": "Asansör Sayısı", + "heating_system": "Isıtma Sistemi", + "cooling_system": "Soğutma Sistemi", + "hot_water_system": "Sıcak Su Sistemi", + "block_service_man_count": "Hizmet Görevlisi Sayısı", + "security_service_man_count": "Güvenlik Görevlisi Sayısı", + "garage_count": "Garaj Sayısı", + "site_uu_id": "Site UUID", + } + en = { + **CrudRecordValidation.en, + "gov_address_code": "Government Address Code", + "build_name": "Building Name", + "build_types_uu_id": "Building Type", + "build_no": "Building No", + "max_floor": "Number of Floors", + "underground_floor": "Number of Basement Floors", + "address_uu_id": "Address", + "build_date": "Construction Date", + "decision_period_date": "Decision Date", + "tax_no": "Tax No", + "lift_count": "Number of Elevators", + "heating_system": "Heating System", + "cooling_system": "Cooling System", + "hot_water_system": "Hot Water System", + "block_service_man_count": "Number of Service Officers", + "security_service_man_count": "Number of Security Officers", + "garage_count": "Number of Garages", + "site_uu_id": "Site UUID", + } + +class ListBuildingResponse(BaseModelRegular, CrudRecords, BuildListValidation): + + gov_address_code: Optional[str] = None + build_name: Optional[str] = None + build_types_uu_id: Optional[str] = None + build_no: Optional[str] = None + max_floor: Optional[int] = None + underground_floor: Optional[int] = None + address_uu_id: Optional[str] = None + build_date: Optional[str] = None + decision_period_date: Optional[str] = None + tax_no: Optional[str] = None + lift_count: Optional[int] = None + heating_system: Optional[bool] = None + cooling_system: Optional[bool] = None + hot_water_system: Optional[bool] = None + block_service_man_count: Optional[int] = None + security_service_man_count: Optional[int] = None + garage_count: Optional[int] = None + site_uu_id: Optional[str] = None + + +# class InsertBuild(BaseModelRegular, BuildValidation): +# gov_address_code: str +# build_name: str +# build_types_uu_id: str +# max_floor: int +# underground_floor: int +# address_uu_id: str +# build_date: str +# decision_period_date: str +# +# tax_no: Optional[str] = None +# lift_count: Optional[int] = None +# heating_system: Optional[bool] = None +# cooling_system: Optional[bool] = None +# hot_water_system: Optional[bool] = None +# block_service_man_count: Optional[int] = None +# security_service_man_count: Optional[int] = None +# garage_count: Optional[int] = None +# +# +# class BuildUpdateValidation: +# tr = { +# **BuildValidation.tr, +# **PydanticBaseModelValidation.tr, +# } +# en = { +# **BuildValidation.en, +# **PydanticBaseModelValidation.en, +# } +# +# +# class UpdateBuild(PydanticBaseModel, BuildUpdateValidation): +# gov_address_code: Optional[str] = None +# build_name: Optional[str] = None +# build_no: Optional[str] = None +# build_types: Optional[str] = None +# max_floor: Optional[int] = None +# underground_floor: Optional[int] = None +# build_date: Optional[str] = None +# tax_no: Optional[str] = None +# lift_count: Optional[int] = None +# heating_system: Optional[bool] = None +# cooling_system: Optional[bool] = None +# hot_water_system: Optional[bool] = None +# block_service_man_count: Optional[int] = None +# security_service_man_count: Optional[int] = None +# garage_count: Optional[int] = None +# address_uu_id: Optional[str] = None diff --git a/service_app/routers/validations/router.py b/service_app/routers/validations/router.py index 86a71c3..db3853e 100644 --- a/service_app/routers/validations/router.py +++ b/service_app/routers/validations/router.py @@ -49,61 +49,37 @@ def user_list(request: Request, validation: EndpointValidation): status_code=status.HTTP_401_UNAUTHORIZED, detail=f"This endpoint {str(validation.endpoint)} is not active for this user, please contact your responsible company for further information.", ) - if valid_token.user_type == 1: - if not valid_token.selected_company: - raise HTTPException( - status_code=status.HTTP_401_UNAUTHORIZED, - detail="Selected company is not found in the token object.", - ) - selected_event = Events.filter_one( - Events.endpoint_id == endpoint_active.id, - Events.id.in_(valid_token.selected_company.reachable_event_list_id), - ).data - if not selected_event: - raise HTTPException( - status_code=status.HTTP_401_UNAUTHORIZED, - detail="This endpoint requires event validation. Please contact your responsible company to use this event.", - ) - active_validation = retrieve_validation_from_class(selected_event, events) - if not active_validation: - raise HTTPException( - status_code=status.HTTP_401_UNAUTHORIZED, - detail="This endpoint requires event validation. Please contact your responsible company to use this event.", - ) - headers = getattr( - active_validation, str(valid_token.lang).lower(), active_validation.tr + if valid_token.user_type == 1 and not valid_token.selected_company: + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail="Selected company is not found in the token object.", ) - return EndpointValidationResponse( - language=valid_token.lang, - headers=headers, - validation=active_validation.model_json_schema(), + elif valid_token.user_type == 2 and not valid_token.selected_occupant: + raise HTTPException( + status_code=status.HTTP_418_IM_A_TEAPOT, + detail="Selected occupant is not found in the token object.", ) - elif valid_token.user_type == 2: - if not valid_token.selected_occupant: - raise HTTPException( - status_code=status.HTTP_418_IM_A_TEAPOT, - detail="Selected occupant is not found in the token object.", - ) - selected_event = Events.filter_one( - Events.endpoint_id == endpoint_active.id, - Events.id.in_(valid_token.selected_occupant.reachable_event_list_id), - ).data - if not selected_event: - raise HTTPException( - status_code=status.HTTP_401_UNAUTHORIZED, - detail=f"This endpoint {str(validation.endpoint)} requires event validation. Please contact your responsible company to use this event.", - ) - active_validation = retrieve_validation_from_class(selected_event, events) - if not active_validation: - raise HTTPException( - status_code=status.HTTP_401_UNAUTHORIZED, - detail=f"This endpoint {str(validation.endpoint)} requires event validation. Please contact your responsible company to use this event.", - ) - headers = getattr( - active_validation, str(valid_token.lang), active_validation.tr + selected_event = Events.filter_one( + Events.endpoint_id == endpoint_active.id, + Events.id.in_(valid_token.selected_company.reachable_event_list_id), + ).data + if not selected_event: + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail="This endpoint requires event validation. Please contact your responsible company to use this event.", ) - return EndpointValidationResponse( - language=valid_token.lang, - headers=headers, - validation=active_validation.model_json_schema(), + active_validation = retrieve_validation_from_class(selected_event, events) + if not active_validation: + raise HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail="No validation found for this endpoint.", ) + headers = getattr( + active_validation, str(valid_token.lang).lower(), active_validation.tr + ) + print('headers', headers) + return EndpointValidationResponse( + language=valid_token.lang, + headers=headers, + validation=active_validation.model_json_schema(), + )