Skip to content

Commit be42015

Browse files
committed
Add move methods to SupersetClient
1 parent ee429b4 commit be42015

File tree

1 file changed

+64
-2
lines changed

1 file changed

+64
-2
lines changed

src/preset_cli/api/clients/superset.py

Lines changed: 64 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,12 @@ def get_resource(self, resource_name: str, resource_id: int) -> Any:
431431

432432
return resource
433433

434-
def get_resources(self, resource_name: str, **kwargs: Any) -> List[Any]:
434+
def get_resources(
435+
self,
436+
resource_name: str,
437+
order_column: str = "changed_on_delta_humanized",
438+
**kwargs: Any,
439+
) -> List[Any]:
435440
"""
436441
Return one or more of a resource, possibly filtered.
437442
"""
@@ -449,7 +454,7 @@ def get_resources(self, resource_name: str, **kwargs: Any) -> List[Any]:
449454
dict(col=col, opr=value.operator, value=value.value)
450455
for col, value in operations.items()
451456
],
452-
"order_column": "changed_on_delta_humanized",
457+
"order_column": order_column,
453458
"order_direction": "desc",
454459
"page": page,
455460
"page_size": MAX_PAGE_SIZE,
@@ -507,6 +512,15 @@ def update_resource(
507512

508513
return resource
509514

515+
def delete_resource(self, resource_name: str, resource_id: int):
516+
"""
517+
Delete a resource.
518+
"""
519+
url = self.baseurl / "api/v1" / resource_name / str(resource_id)
520+
521+
response = self.session.delete(url)
522+
validate_response(response)
523+
510524
def get_resource_endpoint_info(self, resource_name: str, **kwargs: Any) -> Any:
511525
"""
512526
Get resource endpoint info (such as available columns) possibly filtered.
@@ -679,6 +693,18 @@ def get_charts(self, **kwargs: str) -> List[Any]:
679693
"""
680694
return self.get_resources("chart", **kwargs)
681695

696+
def update_chart(self, chart_id: int, **kwargs: Any) -> Any:
697+
"""
698+
Update a chart.
699+
"""
700+
return self.update_resource("chart", chart_id, **kwargs)
701+
702+
def delete_chart(self, chart_id):
703+
"""
704+
delete a chart.
705+
"""
706+
self.delete_resource("chart", chart_id)
707+
682708
def get_dashboard(self, dashboard_id: int) -> Any:
683709
"""
684710
Return a single dashboard.
@@ -703,6 +729,42 @@ def update_dashboard(self, dashboard_id: int, **kwargs: Any) -> Any:
703729
"""
704730
return self.update_resource("dashboard", dashboard_id, **kwargs)
705731

732+
def delete_dashboard(self, dashboard_id: int) -> Any:
733+
"""
734+
Delete a dashboard.
735+
"""
736+
self.delete_resource("dashboard", dashboard_id)
737+
738+
def get_users(self, **kwargs: str) -> List[Any]:
739+
"""
740+
Return users, possibly filtered.
741+
"""
742+
return self.get_resources("security/users", "id", **kwargs)
743+
744+
def get_report(self, report_id: int) -> Any:
745+
"""
746+
Return a single report.
747+
"""
748+
return self.get_resource("report", report_id)
749+
750+
def get_reports(self, **kwargs: str) -> List[Any]:
751+
"""
752+
Return reports, possibly filtered.
753+
"""
754+
return self.get_resources("report", **kwargs)
755+
756+
def create_report(self, **kwargs: Any) -> Any:
757+
"""
758+
Create a report.
759+
"""
760+
return self.create_resource("report", **kwargs)
761+
762+
def update_report(self, report_id: int, **kwargs: Any) -> Any:
763+
"""
764+
Update a report.
765+
"""
766+
return self.update_resource("report", report_id, **kwargs)
767+
706768
def export_zip(self, resource_name: str, ids: List[int]) -> BytesIO:
707769
"""
708770
Export one or more of a resource.

0 commit comments

Comments
 (0)