updated update base models

This commit is contained in:
berkay 2024-12-20 22:05:42 +03:00
parent de9af544bb
commit b8cebd9af4
5 changed files with 112 additions and 81 deletions

View File

@ -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.",

View File

@ -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,

View File

@ -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):

View File

@ -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):

View File

@ -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:
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