diff --git a/api_events/events/building/building_build.py b/api_events/events/building/building_build.py index c1838c8..e492d2f 100644 --- a/api_events/events/building/building_build.py +++ b/api_events/events/building/building_build.py @@ -204,13 +204,10 @@ class BuildUpdateEventMethods(MethodToEvent): data: UpdateBuild, token_dict: Union[EmployeeTokenObject, OccupantTokenObject], ): - Build.pre_query = Build.select_action( - employee_id=token_dict.selected_company.employee_id - ) - if Build.filter_all( - Build.person_id == token_dict.person_id, - ).data: - Build.pre_query = None + if isinstance(token_dict, OccupantTokenObject): + Build.pre_query = Build.select_action( + employee_id=token_dict.selected_company.employee_id + ) updated_build = Build.update_action( data=data, token=token_dict, build_uu_id=build_uu_id ) @@ -219,10 +216,30 @@ class BuildUpdateEventMethods(MethodToEvent): content={ "completed": True, "message": "Update Build record", - "data": updated_build, + "data": updated_build.get_dict(), }, status_code=status.HTTP_200_OK, ) + elif isinstance(token_dict, EmployeeTokenObject): + find_one_build = Build.filter_one( + Build.uu_id == build_uu_id, + ).data + access_authorized_build = Build.select_action( + employee_id=token_dict.selected_company.employee_id, + filter_expr=[Build.id == find_one_build.id], + ) + if access_authorized_build.count: + updated_build = Build.update_action( + data=data, token=token_dict, build_uu_id=build_uu_id + ) + return JSONResponse( + content={ + "completed": True, + "message": "Update Build record", + "data": updated_build.get_dict(), + }, + status_code=status.HTTP_200_OK, + ) raise HTTPException( status_code=status.HTTP_401_UNAUTHORIZED, detail=f"This user can not modify {build_uu_id} - building.", diff --git a/api_services/redis/auth_actions/token.py b/api_services/redis/auth_actions/token.py index 5cc8331..66d163a 100644 --- a/api_services/redis/auth_actions/token.py +++ b/api_services/redis/auth_actions/token.py @@ -15,10 +15,13 @@ def parse_token_object_to_dict(request): # from requests import Request or str(endpoint_name) in Config.NOT_SECURE_PATHS ): return valid_token + if 'update' in endpoint_name: + endpoint_name = endpoint_name.split('update')[0] + "update" endpoint_active = EndpointRestriction.filter_one( EndpointRestriction.endpoint_name.ilike(f"%{endpoint_name}%"), system=True, ).data + if not endpoint_active: raise HTTPException( status_code=status.HTTP_401_UNAUTHORIZED, diff --git a/api_validations/validations_request/core_request_validations.py b/api_validations/validations_request/core_request_validations.py index 060777e..1dfa452 100644 --- a/api_validations/validations_request/core_request_validations.py +++ b/api_validations/validations_request/core_request_validations.py @@ -97,12 +97,12 @@ class PydanticBaseModel(BaseModelRegular): active: Optional[bool] = None deleted: Optional[bool] = None expiry_starts: Optional[str] = None - expiry_ends: Optional[str] = None + # expiry_ends: Optional[str] = None is_confirmed: Optional[bool] = None class EndpointPydantic(BaseModelRegular): - data: Optional[dict] = {} + data: Optional[dict] = None class EndpointValidation(BaseModelRegular): diff --git a/databases/sql_models/building/build.py b/databases/sql_models/building/build.py index b966db0..376a091 100644 --- a/databases/sql_models/building/build.py +++ b/databases/sql_models/building/build.py @@ -271,18 +271,22 @@ class Build(CrudCollection, SelectActionWithEmployee): @classmethod def update_action(cls, data: UpdateBuild, build_uu_id: str, token): from databases import Addresses - + print('data_dict', data.dump()) data_dict = data.excluded_dump() - if data.official_address_uu_id: + if data.address_uu_id: official_address = Addresses.filter_one( Addresses.uu_id == data.address_uu_id ).data data_dict["address_id"] = official_address.id if official_address else None - del data_dict["address_uu_id"] + print('data_dict', data_dict) if build_to_update := cls.filter_one( - cls.uu_id == build_uu_id, cls.person_id == token.id + cls.uu_id == build_uu_id ).data: - return build_to_update.update(**data_dict) + print('build_to_update', build_to_update.get_dict()) + updated_build = build_to_update.update(**data_dict) + updated_build.save() + print('updated_build', updated_build.get_dict()) + return updated_build @property def top_flat(self): diff --git a/docker-compose.yml b/docker-compose.yml index 75d69f7..abfa591 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,8 +2,8 @@ services: commercial_mongo_service: container_name: commercial_mongo_service -# image: "bitnami/mongodb:latest" - image: "bitnami/mongodb:4.4.1-debian-10-r3" + image: "bitnami/mongodb:latest" +# image: "bitnami/mongodb:4.4.1-debian-10-r3" networks: - network_store_services environment: @@ -61,62 +61,62 @@ services: - "41575:41575" networks: - network_store_services - depends_on: - - wag_management_init_service +# depends_on: +# - wag_management_init_service # - grafana - - wag_management_service_second: - container_name: wag_management_service_second - restart: on-failure - build: - context: . - dockerfile: service_app/Dockerfile - ports: - - "41576:41575" - networks: - - network_store_services - depends_on: - - wag_management_init_service -# - grafana - - wag_management_init_service: - container_name: wag_management_init_service - build: - context: . - dockerfile: service_app_init/Dockerfile - networks: - - network_store_services - depends_on: - - postgres_commercial - - wag_bank_services: - container_name: wag_bank_services - restart: on-failure - build: - context: . - dockerfile: service_app_banks/mailService.Dockerfile - networks: - - network_store_services - depends_on: - - postgres_commercial - environment: - - DATABASE_URL=postgresql+psycopg2://berkay_wag_user:berkay_wag_user_password@postgres_commercial:5432/wag_database - - PYTHONPATH=/service_app_banks # - wag_account_services: - container_name: wag_account_services - restart: on-failure - build: - context: . - dockerfile: service_account_records/account.Dockerfile - networks: - - network_store_services - depends_on: - - postgres_commercial - environment: - - DATABASE_URL=postgresql+psycopg2://berkay_wag_user:berkay_wag_user_password@postgres_commercial:5432/wag_database - - PYTHONPATH=/ +# wag_management_service_second: +# container_name: wag_management_service_second +# restart: on-failure +# build: +# context: . +# dockerfile: service_app/Dockerfile +# ports: +# - "41576:41575" +# networks: +# - network_store_services +# depends_on: +# - wag_management_init_service +# - grafana +# wag_management_init_service: +# container_name: wag_management_init_service +# build: +# context: . +# dockerfile: service_app_init/Dockerfile +# networks: +# - network_store_services +# depends_on: +# - postgres_commercial +# +# wag_bank_services: +# container_name: wag_bank_services +# restart: on-failure +# build: +# context: . +# dockerfile: service_app_banks/mailService.Dockerfile +# networks: +# - network_store_services +# depends_on: +# - postgres_commercial +# environment: +# - DATABASE_URL=postgresql+psycopg2://berkay_wag_user:berkay_wag_user_password@postgres_commercial:5432/wag_database +# - PYTHONPATH=/service_app_banks +## +# wag_account_services: +# container_name: wag_account_services +# restart: on-failure +# build: +# context: . +# dockerfile: service_account_records/account.Dockerfile +# networks: +# - network_store_services +# depends_on: +# - postgres_commercial +# environment: +# - DATABASE_URL=postgresql+psycopg2://berkay_wag_user:berkay_wag_user_password@postgres_commercial:5432/wag_database +# - PYTHONPATH=/ +# # prometheus: # image: prom/prometheus # container_name: prometheus @@ -145,16 +145,16 @@ services: # - GF_USERS_ALLOW_ORG_CREATE=false # volumes: # - grafana_data:/var/lib/grafana - - wag_management_test_service: - container_name: wag_management_test_service - build: - context: . - dockerfile: service_app_test/Dockerfile - networks: - - network_store_services - depends_on: - - wag_management_init_service +# +# wag_management_test_service: +# container_name: wag_management_test_service +# build: +# context: . +# dockerfile: service_app_test/Dockerfile +# networks: +# - network_store_services +# depends_on: +# - wag_management_init_service # nginx-proxy-wag: # container_name: nginx-proxy-wag @@ -178,4 +178,11 @@ networks: volumes: grafana_data: wag_postgres_commercial_data: - wag_commercial_mongodb_data: \ No newline at end of file + wag_commercial_mongodb_data: + +# environment: +# - DATABASE_URL=postgresql+psycopg2://berkay_wag_user:berkay_wag_user_password@postgres_commercial:5432/wag_database +# - REDIS_HOST=commercial_memory_service +# - REDIS_PASSWORD=commercial_redis_password +# - REDIS_PORT=6379 +# - REDIS_DB=0 \ No newline at end of file