From 8c42f63c29dfa805d6862902c68942db53d85551 Mon Sep 17 00:00:00 2001 From: Jan Kadlec Date: Tue, 3 Jun 2025 10:52:31 +0200 Subject: [PATCH] feat: add description to workspace JIRA: TRIVIAL risk: low --- .../declarative_model/workspace/workspace.py | 1 + .../workspace/entity_model/workspace.py | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/workspace.py b/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/workspace.py index 4ce062e11..ccb37ab6c 100644 --- a/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/workspace.py +++ b/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/workspace.py @@ -79,6 +79,7 @@ def change_wdf_refs_id(self, mapping: dict[str, str]) -> None: class CatalogDeclarativeWorkspace(Base): id: str name: str + description: Optional[str] = None model: Optional[CatalogDeclarativeWorkspaceModel] = None parent: Optional[CatalogWorkspaceIdentifier] = None permissions: list[CatalogDeclarativeSingleWorkspacePermission] = attr.field(factory=list) diff --git a/gooddata-sdk/gooddata_sdk/catalog/workspace/entity_model/workspace.py b/gooddata-sdk/gooddata_sdk/catalog/workspace/entity_model/workspace.py index 140646206..87334d285 100644 --- a/gooddata-sdk/gooddata_sdk/catalog/workspace/entity_model/workspace.py +++ b/gooddata-sdk/gooddata_sdk/catalog/workspace/entity_model/workspace.py @@ -21,12 +21,21 @@ class CatalogWorkspace(Base): id: str = attr.field(init=False, default=attr.Factory(lambda self: self.workspace_id, takes_self=True)) name: str parent_id: Optional[str] = attr.field(default=None) + description: Optional[str] = attr.field(default=None) @classmethod def from_api(cls, entity: dict[str, Any]) -> CatalogWorkspace: ea = entity["attributes"] er = entity.get("relationships") - return cls(workspace_id=entity["id"], name=ea["name"], parent_id=safeget(er, ["parent", "data", "id"])) + return cls( + workspace_id=entity["id"], + name=ea["name"], + parent_id=safeget( + er, + ["parent", "data", "id"], + ), + description=ea.get("description"), + ) def to_api(self) -> JsonApiWorkspaceInDocument: kwargs = dict() @@ -36,12 +45,13 @@ def to_api(self) -> JsonApiWorkspaceInDocument: data=JsonApiWorkspaceToOneLinkage(id=self.parent_id, type="workspace") ) ) + attributes_dict = {"name": self.name} + if self.description: + attributes_dict["description"] = self.description return JsonApiWorkspaceInDocument( data=JsonApiWorkspaceIn( id=self.id, - attributes=JsonApiWorkspaceInAttributes( - name=self.name, - ), + attributes=JsonApiWorkspaceInAttributes(**attributes_dict), **kwargs, ) )