diff --git a/pkgs/clan-cli/clan_cli/webui/routers/endpoints.py b/pkgs/clan-cli/clan_cli/webui/routers/endpoints.py index 0948de2..52ce303 100644 --- a/pkgs/clan-cli/clan_cli/webui/routers/endpoints.py +++ b/pkgs/clan-cli/clan_cli/webui/routers/endpoints.py @@ -61,6 +61,16 @@ def inc_service_usage( return service +@router.put("/api/v1/service", response_model=Service, tags=[Tags.services]) +def update_service( + service: ServiceCreate, + uuid: str = "bdd640fb-0667-1ad1-1c80-317fa3b1799d", + db: Session = Depends(sql_db.get_db), +) -> Service: + service = sql_crud.set_service(db, uuid, service) + return service + + @router.get("/api/v1/services", response_model=List[Service], tags=[Tags.services]) def get_all_services( skip: int = 0, limit: int = 100, db: Session = Depends(sql_db.get_db) diff --git a/pkgs/clan-cli/clan_cli/webui/sql_crud.py b/pkgs/clan-cli/clan_cli/webui/sql_crud.py index 6cd62c1..b95be2e 100644 --- a/pkgs/clan-cli/clan_cli/webui/sql_crud.py +++ b/pkgs/clan-cli/clan_cli/webui/sql_crud.py @@ -64,6 +64,25 @@ def set_service_usage( return db_service +def set_service( + db: Session, service_uuid: str, service: schemas.ServiceCreate +) -> sql_models.Service: + db_service = get_service_by_uuid(db, service_uuid) + if db_service is None: + raise ClanError(f"Service with uuid '{service_uuid}' not found") + db_service.service_name = service.service_name # type: ignore + db_service.service_type = service.service_type # type: ignore + db_service.endpoint_url = service.endpoint_url # type: ignore + db_service.status = service.status # type: ignore + db_service.other = service.other # type: ignore + db_service.entity_did = service.entity_did # type: ignore + db_service.action = service.action # type: ignore + db.add(db_service) + db.commit() + db.refresh(db_service) + return db_service + + def add_service_usage( db: Session, service_uuid: str, usage: schemas.ServiceUsageCreate ) -> sql_models.Service: