From dca3cf90ff08813eea61bc9f7f87b08acd18fcbe Mon Sep 17 00:00:00 2001 From: berkay Date: Tue, 19 Nov 2024 12:28:58 +0300 Subject: [PATCH] project events updated --- api_events/events/__init__.py | 30 +++++---- api_events/events/company/company_company.py | 4 +- .../decision_book/project_decision_book.py | 38 +++++++++-- .../project_decision_book_person.py | 29 +++++++-- .../tasks2events/employee_tasks/super_user.py | 3 - .../validations_request/decision_book.py | 6 ++ databases/sql_models/company/company.py | 4 +- .../project_decision_book/router.py | 55 ++++++++++++++++ .../project_decision_book_person/router.py | 64 +++++++++++++++++++ .../migrate_old_data/runner.py | 26 ++------ 10 files changed, 214 insertions(+), 45 deletions(-) create mode 100644 service_app/routers/decision_book/project_decision_book/router.py create mode 100644 service_app/routers/decision_book/project_decision_book_person/router.py diff --git a/api_events/events/__init__.py b/api_events/events/__init__.py index 3ed8253..c9651b1 100644 --- a/api_events/events/__init__.py +++ b/api_events/events/__init__.py @@ -124,14 +124,17 @@ from api_events.events.decision_book.decision_book_decision_book_items import ( DecisionBookDecisionBookItemsPatchEventMethod, ) from api_events.events.decision_book.project_decision_book import ( - ProjectDecisionBookCreateEvents, - ProjectDecisionBookUpdateEvents, - ProjectDecisionBookPatchEvents, + ProjectDecisionBookListEventMethod, + ProjectDecisionBookCreateEventMethod, + ProjectDecisionBookUpdateEventMethod, + ProjectDecisionBookApprovalEventMethod, + ProjectDecisionBookPatchEventMethod, ) from api_events.events.decision_book.project_decision_book_person import ( - ProjectDecisionBookPersonCreateEvents, - ProjectDecisionBookPersonUpdateEvents, - ProjectDecisionBookPersonPatchEvents, + ProjectDecisionBookPersonListEventMethod, + ProjectDecisionBookPersonCreateEventMethod, + ProjectDecisionBookPersonUpdateEventMethod, + ProjectDecisionBookPersonPatchEventMethod, ) from api_events.events.events.events_bind_events import ( EventBindOccupantEventMethod, @@ -218,12 +221,15 @@ __all__ = [ "DecisionBookDecisionBookItemsCreateEventMethod", "DecisionBookDecisionBookItemsUpdateEventMethod", "DecisionBookDecisionBookItemsPatchEventMethod", - "ProjectDecisionBookCreateEvents", - "ProjectDecisionBookUpdateEvents", - "ProjectDecisionBookPatchEvents", - "ProjectDecisionBookPersonCreateEvents", - "ProjectDecisionBookPersonUpdateEvents", - "ProjectDecisionBookPersonPatchEvents", + "ProjectDecisionBookListEventMethod", + "ProjectDecisionBookCreateEventMethod", + "ProjectDecisionBookUpdateEventMethod", + "ProjectDecisionBookApprovalEventMethod", + "ProjectDecisionBookPatchEventMethod", + "ProjectDecisionBookPersonListEventMethod", + "ProjectDecisionBookPersonCreateEventMethod", + "ProjectDecisionBookPersonUpdateEventMethod", + "ProjectDecisionBookPersonPatchEventMethod", "CompanyPatchEventMethod", "CompanyCreateEventMethod", "CompanyUpdateEventMethod", diff --git a/api_events/events/company/company_company.py b/api_events/events/company/company_company.py index ee3c1c9..b489e4d 100644 --- a/api_events/events/company/company_company.py +++ b/api_events/events/company/company_company.py @@ -64,7 +64,9 @@ class CompanyCreateEventMethods(MethodToEvent): token_dict: EmployeeTokenObject, ): created_company = Companies.create_action(data=data, token=token_dict) - created_company.related_company = token_dict.selected_company.company_uu_id + created_company.update( + related_company=token_dict.selected_company.company_uu_id + ) created_company.save() return JSONResponse( content={ diff --git a/api_events/events/decision_book/project_decision_book.py b/api_events/events/decision_book/project_decision_book.py index e60abb4..0acdfc0 100644 --- a/api_events/events/decision_book/project_decision_book.py +++ b/api_events/events/decision_book/project_decision_book.py @@ -26,7 +26,7 @@ from databases import ( from databases.sql_models.building.decision_book import BuildDecisionBookProjectItems, BuildDecisionBookItems -class ProjectDecisionBookPersonListEvents(MethodToEvent): +class ProjectDecisionBookListEventMethods(MethodToEvent): event_type = "LIST" @@ -62,7 +62,7 @@ class ProjectDecisionBookPersonListEvents(MethodToEvent): ) -class ProjectDecisionBookCreateEvents(MethodToEvent): +class ProjectDecisionBookCreateEventMethods(MethodToEvent): event_type = "CREATE" @@ -118,7 +118,7 @@ class ProjectDecisionBookCreateEvents(MethodToEvent): ) -class ProjectDecisionBookUpdateEvents(MethodToEvent): +class ProjectDecisionBookUpdateEventMethods(MethodToEvent): event_type = "UPDATE" @@ -194,7 +194,7 @@ class ProjectDecisionBookUpdateEvents(MethodToEvent): ) -class ProjectDecisionBookApprovalEvents(MethodToEvent): +class ProjectDecisionBookApprovalEventMethods(MethodToEvent): event_type = "UPDATE" @@ -310,7 +310,7 @@ class ProjectDecisionBookApprovalEvents(MethodToEvent): ) -class ProjectDecisionBookPatchEvents(MethodToEvent): +class ProjectDecisionBookPatchEventMethods(MethodToEvent): event_type = "PATCH" @@ -325,3 +325,31 @@ class ProjectDecisionBookPatchEvents(MethodToEvent): token_dict: Union[EmployeeTokenObject, OccupantTokenObject], ): return + + +ProjectDecisionBookListEventMethod = ( + ProjectDecisionBookListEventMethods( + action=ActionsSchema(endpoint="/build/decision_book/project/person/list") + ) +) +ProjectDecisionBookCreateEventMethod = ( + ProjectDecisionBookCreateEventMethods( + action=ActionsSchema(endpoint="/build/decision_book/project/create") + ) +) +ProjectDecisionBookUpdateEventMethod = ( + ProjectDecisionBookUpdateEventMethods( + action=ActionsSchema(endpoint="/build/decision_book/project/update") + ) +) +ProjectDecisionBookApprovalEventMethod = ( + ProjectDecisionBookApprovalEventMethods( + action=ActionsSchema(endpoint="/build/decision_book/project/approval") + ) +) +ProjectDecisionBookPatchEventMethod = ( + ProjectDecisionBookPatchEventMethods( + action=ActionsSchema(endpoint="/build/decision_book/project/patch") + ) +) + diff --git a/api_events/events/decision_book/project_decision_book_person.py b/api_events/events/decision_book/project_decision_book_person.py index 0bde9b7..20a9120 100644 --- a/api_events/events/decision_book/project_decision_book_person.py +++ b/api_events/events/decision_book/project_decision_book_person.py @@ -16,7 +16,7 @@ from api_objects.auth.token_objects import EmployeeTokenObject, OccupantTokenObj from api_validations.core_response import AlchemyJsonResponse -class ProjectDecisionBookPersonListEvents(MethodToEvent): +class ProjectDecisionBookPersonListEventMethods(MethodToEvent): event_type = "LIST" @@ -52,7 +52,7 @@ class ProjectDecisionBookPersonListEvents(MethodToEvent): ) -class ProjectDecisionBookPersonCreateEvents(MethodToEvent): +class ProjectDecisionBookPersonCreateEventMethods(MethodToEvent): event_type = "CREATE" @@ -85,7 +85,7 @@ class ProjectDecisionBookPersonCreateEvents(MethodToEvent): ) -class ProjectDecisionBookPersonUpdateEvents(MethodToEvent): +class ProjectDecisionBookPersonUpdateEventMethods(MethodToEvent): event_type = "UPDATE" @@ -119,7 +119,7 @@ class ProjectDecisionBookPersonUpdateEvents(MethodToEvent): ) -class ProjectDecisionBookPersonPatchEvents(MethodToEvent): +class ProjectDecisionBookPersonPatchEventMethods(MethodToEvent): event_type = "PATCH" @@ -151,3 +151,24 @@ class ProjectDecisionBookPersonPatchEvents(MethodToEvent): result=decision_book_project_person, ) + +ProjectDecisionBookPersonListEventMethod = ( + ProjectDecisionBookPersonListEventMethods( + action=ActionsSchema(endpoint="/build/decision_book/project/people/list") + ) +) +ProjectDecisionBookPersonCreateEventMethod = ( + ProjectDecisionBookPersonCreateEventMethods( + action=ActionsSchema(endpoint="/build/decision_book/project/people/create") + ) +) +ProjectDecisionBookPersonUpdateEventMethod = ( + ProjectDecisionBookPersonUpdateEventMethods( + action=ActionsSchema(endpoint="/build/decision_book/project/people/update") + ) +) +ProjectDecisionBookPersonPatchEventMethod = ( + ProjectDecisionBookPersonPatchEventMethods( + action=ActionsSchema(endpoint="/build/decision_book/project/people/patch") + ) +) diff --git a/api_events/tasks2events/employee_tasks/super_user.py b/api_events/tasks2events/employee_tasks/super_user.py index 4ca8150..7af27b2 100644 --- a/api_events/tasks2events/employee_tasks/super_user.py +++ b/api_events/tasks2events/employee_tasks/super_user.py @@ -86,9 +86,6 @@ class SuperUserEventBlock(AddEventFunctionality): {"function_code": "36961d8a-cefa-46cc-9f7c-9d841d6351b6"}, {"function_code": "46d90119-3b23-4784-8053-fe11da4a3584"}, {"function_code": "c786e15c-c03e-4e8f-936c-7e5e5ec9bbcc"}, - {"function_code": "f6900cb5-ac5b-478e-8e7c-fa87e65cd2e5"}, - {"function_code": "76f11a08-5f4a-4e1f-961f-aaef21699acd"}, - {"function_code": "41ea7f29-006a-4310-b5c4-b2a0e1a504bd"}, {"function_code": "5344d03c-fc47-43ec-8c44-6c2acd7e5d9f"}, {"function_code": "31f4f32f-0cd4-4995-8a6a-f9f56335848a"}, {"function_code": "7192c2aa-5352-4e36-98b3-dafb7d036a3d"}, diff --git a/api_validations/validations_request/decision_book.py b/api_validations/validations_request/decision_book.py index 3b3d5c2..bd3599f 100644 --- a/api_validations/validations_request/decision_book.py +++ b/api_validations/validations_request/decision_book.py @@ -57,6 +57,12 @@ class InsertDecisionBookPerson(BaseModelRegular): dues_percent_discount: Optional[int] = None +class UpdateDecisionBookPerson(PydanticBaseModel): + + dues_fix_discount: Optional[float] = None + dues_percent_discount: Optional[int] = None + + class RemoveDecisionBookPerson(PydanticBaseModel): person_uu_id: str build_decision_book_person_uu_id: str diff --git a/databases/sql_models/company/company.py b/databases/sql_models/company/company.py index 71acc74..02eb359 100644 --- a/databases/sql_models/company/company.py +++ b/databases/sql_models/company/company.py @@ -267,7 +267,8 @@ class Companies(CrudCollection, SelectAction): token.selected_company.company_uu_id ) company_created = cls.find_or_create(**data_dict) - RelationshipDutyCompany.find_or_create( + company_created.save_and_confirm() + company_relationship_created = RelationshipDutyCompany.find_or_create( owner_id=token.selected_company.company_id, duties_id=bulk_duties.id, member_id=company_created.id, @@ -276,6 +277,7 @@ class Companies(CrudCollection, SelectAction): relationship_type="Bulk", show_only=False, ) + company_relationship_created.save_and_confirm() return company_created @classmethod diff --git a/service_app/routers/decision_book/project_decision_book/router.py b/service_app/routers/decision_book/project_decision_book/router.py new file mode 100644 index 0000000..f28da14 --- /dev/null +++ b/service_app/routers/decision_book/project_decision_book/router.py @@ -0,0 +1,55 @@ +from fastapi.routing import APIRouter +from fastapi.requests import Request + +from api_validations.validations_request import ( + InsertBuildDecisionBookProjects, + UpdateBuildDecisionBookProjects, + ApprovalsBuildDecisionBookProjects, + ListOptions, +) +from api_services.redis.auth_actions.token import parse_token_object_to_dict + + +build_decision_book_project_route = APIRouter( + prefix="/build/decision_book/project", tags=["Decision Book Project"] +) +build_decision_book_project_route.include_router( + build_decision_book_project_route, include_in_schema=True +) + + +@build_decision_book_project_route.post( + path="/list", summary="List Active/Delete/Confirm Build Decision Book People" +) +def build_decision_book_project_people_list(request: Request, list_options: ListOptions): + token_dict = parse_token_object_to_dict(request=request) + return token_dict.available_event(list_options=list_options, token_dict=token_dict) + + +@build_decision_book_project_route.post( + path="/create", + summary="Create Build Decision Book Project People with given auth levels", +) +def build_decision_book_project_people_create(request: Request, data: InsertBuildDecisionBookProjects): + token_dict = parse_token_object_to_dict(request=request) + return token_dict.available_event(data=data, token_dict=token_dict) + + +@build_decision_book_project_route.post( + path="/update/{build_decision_book_project_id}", + summary="Add people to Build Decision People Book with given auth levels", +) +def build_decision_book_project_people_update(request: Request, data: UpdateBuildDecisionBookProjects): + token_dict = parse_token_object_to_dict(request=request) + return token_dict.available_event(data=data, token_dict=token_dict) + + +@build_decision_book_project_route.post( + path="/approval/{build_decision_book_project_id}", + summary="Approval people from Build Decision Book Project People with given auth levels", +) +def build_decision_book_project_invite_approval( + request: Request, data: ApprovalsBuildDecisionBookProjects +): + token_dict = parse_token_object_to_dict(request=request) + return token_dict.available_event(data=data, token_dict=token_dict) diff --git a/service_app/routers/decision_book/project_decision_book_person/router.py b/service_app/routers/decision_book/project_decision_book_person/router.py new file mode 100644 index 0000000..f6a4ab4 --- /dev/null +++ b/service_app/routers/decision_book/project_decision_book_person/router.py @@ -0,0 +1,64 @@ +from fastapi.routing import APIRouter +from fastapi.requests import Request + +from api_validations.validations_request import ( + InsertBuildDecisionBookProjectPerson, + UpdateBuildDecisionBookProjectPerson, + ListOptions, +) +from api_services.redis.auth_actions.token import parse_token_object_to_dict + + +build_decision_book_project_people_route = APIRouter( + prefix="/build/decision_book/project/people", tags=["Decision Book Project People"] +) +build_decision_book_project_people_route.include_router( + build_decision_book_project_people_route, include_in_schema=True +) + + +@build_decision_book_project_people_route.post( + path="/list", summary="List Active/Delete/Confirm Build Decision Book People" +) +def build_decision_book_project_people_list(request: Request, list_options: ListOptions): + token_dict = parse_token_object_to_dict(request=request) + return token_dict.available_event(list_options=list_options, token_dict=token_dict) + + +@build_decision_book_project_people_route.post( + path="/create", + summary="Create Build Decision Book Project People with given auth levels", +) +def build_decision_book_project_people_create(request: Request, data: InsertBuildDecisionBookProjectPerson): + token_dict = parse_token_object_to_dict(request=request) + return token_dict.available_event(data=data, token_dict=token_dict) + + +@build_decision_book_project_people_route.post( + path="/update/{build_decision_book_project_person_uu_id}", + summary="Add people to Build Decision People Book with given auth levels", +) +def build_decision_book_project_people_update( + request: Request, build_decision_book_project_person_uu_id:str, data: UpdateBuildDecisionBookProjectPerson +): + token_dict = parse_token_object_to_dict(request=request) + return token_dict.available_event( + data=data, + build_decision_book_project_person_uu_id=build_decision_book_project_person_uu_id, + token_dict=token_dict + ) + + +@build_decision_book_project_people_route.post( + path="/patch/{build_decision_book_project_person_uu_id}", + summary="Patch people from Build Decision Book Project People with given auth levels", +) +def build_decision_book_project_people_patch( + request: Request, build_decision_book_project_person_uu_id:str, data: UpdateBuildDecisionBookProjectPerson +): + token_dict = parse_token_object_to_dict(request=request) + return token_dict.available_event( + data=data, + build_decision_book_project_person_uu_id=build_decision_book_project_person_uu_id, + token_dict=token_dict + ) diff --git a/service_app_test/test_application/migrate_old_data/runner.py b/service_app_test/test_application/migrate_old_data/runner.py index ca01913..e4d2a07 100644 --- a/service_app_test/test_application/migrate_old_data/runner.py +++ b/service_app_test/test_application/migrate_old_data/runner.py @@ -22,7 +22,7 @@ from service_app_test.test_application.migrate_old_data.accounts import ( ) -password_token = "LmHm9SmX9GiHRkb6Z0GqI4cEzEnxmesMDSWPZEyNqF-9endOcN_qgLKa5kXP8P_oMloNy5EURn4Lq8dZljil2m0_OTAgZRjTqInYb84rsWqqRf8JMqaI7m6UKle_drToNZlnfjpOSgNbbisX3xQv7SvkWBGrWSm4QSI_poRZrgztV2wJZipge7atLopQOFW5" +password_token = "JFHnbuPmYDSK816Ce49UAbjLMuHn3a3X5eFm6TGXzXJd1RNIPJrKprmin1JTsZN1hu1vUoyQRYoIQ2bn-FQOBWn1DoN9LavmJZww2JS7UUXSyMvPZGIgM-vr9BoYh3OaGPqcZAAT8AG3j__80WHfYsPuk_flF4R4UUnKE-0GWQ-YBkVs9C9llhD4k6e_uIsr" login_data = { "domain": "evyos.com.tr", "access_key": "karatay.berkay.sup@evyos.com.tr", @@ -67,34 +67,22 @@ both_apis = BothAPIS() # both_apis.wag_api = wag_api both_apis.local_api = local_api -assign_people_to_create_item = 3 +assign_people_to_create_item = -1 # selection_list = None selection_list = [ - "a44fb2c0-42a4-4193-b964-73dcbf605110", - "463ae98b-07e7-4e76-8de1-d5984fed91fa", + # "a44fb2c0-42a4-4193-b964-73dcbf605110", + # "463ae98b-07e7-4e76-8de1-d5984fed91fa", ] # selection_list = None -manager_token = "WmtHuV0DeWlYAs68PTiM5q100UTzGweh8B2rZAuwrwFqm1r4FhQqcg" +manager_token = "" writers_token = manager_token people_uu_id_list = [ - "2f1d6e3e-aca2-4bfa-a3e7-ce32eb7e02b2", - "2f1d6e3e-aca2-4bfa-a3e7-ce32eb7e02b2", - "2f1d6e3e-aca2-4bfa-a3e7-ce32eb7e02b2", + # "2f1d6e3e-aca2-4bfa-a3e7-ce32eb7e02b2", ] list_of_attendees = [ -"mkQtBLD-zMP94KMz21VFXN2bORlWEqlqM7zQT8GGkvwS0uLGEk3y6Q", -"clp8xw-etegFaVsqVflsz6oIO-SchIvARZO2_t8qaSOOrIlA93Xmeg", -"-FsZrl9bhcKONRGFKJIX1wHPjYQU-GEwydiuXhtNLWB5WxPTusSNhQ", -"HhozHBzoilMYrNI6Li4tYz27LSz2PC2vPxrM0Y7FvbsTXMeDR9EX8Q", -"0s6lOAOQJqARSNx7uTlRjMoIqmC7pEcs6Zo-Q3XmGZPWnv_qLTVXbg", -"EulS8ex9ywa22jp55P6L-Bfnolvb8bIZTirlZn2cSk8_g3sPyYv8gg", -"v9zti5nMhronCi4e-Ud_9MKYwjwg36So6s3kM-v05WnFqeedhgpDbQ", -"uqNBMsqguoyrcEPAmYv5_FNDo_xKtprft4eBx350PKImm4Hq2UdeMw", -"WkREg0XBpW8f-XEKePoOmMiLKReyqo7_4RRUdne4O1nvqt5EtAOJXA", -"Z7zCBEdFTaX-jSo_e29KGXSGc1MKTaGL93KrqKJfV1fqhaepl6iv7g", -"okfCZ1JQuphfZ4GT47tGwmKXCidyxpf1f6wcjsLRVnS6-AU5_EbLJg", + ] living_space_data = dict( build_parts_uu_id="a44fb2c0-42a4-4193-b964-73dcbf605110",