Skip to content

Commit b8cb47e

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

File tree

1 file changed

+63
-2
lines changed

1 file changed

+63
-2
lines changed

src/preset_cli/api/clients/superset.py

Lines changed: 63 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,7 @@ 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(self, resource_name: str, order_column: str = "changed_on_delta_humanized", **kwargs: Any) -> List[Any]:
435435
"""
436436
Return one or more of a resource, possibly filtered.
437437
"""
@@ -449,7 +449,7 @@ def get_resources(self, resource_name: str, **kwargs: Any) -> List[Any]:
449449
dict(col=col, opr=value.operator, value=value.value)
450450
for col, value in operations.items()
451451
],
452-
"order_column": "changed_on_delta_humanized",
452+
"order_column": order_column,
453453
"order_direction": "desc",
454454
"page": page,
455455
"page_size": MAX_PAGE_SIZE,
@@ -507,6 +507,19 @@ def update_resource(
507507

508508
return resource
509509

510+
def delete_resource(
511+
self,
512+
resource_name: str,
513+
resource_id: int
514+
):
515+
"""
516+
Delete a resource.
517+
"""
518+
url = self.baseurl / "api/v1" / resource_name / str(resource_id)
519+
520+
response = self.session.delete(url)
521+
validate_response(response)
522+
510523
def get_resource_endpoint_info(self, resource_name: str, **kwargs: Any) -> Any:
511524
"""
512525
Get resource endpoint info (such as available columns) possibly filtered.
@@ -679,6 +692,18 @@ def get_charts(self, **kwargs: str) -> List[Any]:
679692
"""
680693
return self.get_resources("chart", **kwargs)
681694

695+
def update_chart(self, chart_id: int, **kwargs: Any) -> Any:
696+
"""
697+
Update a chart.
698+
"""
699+
return self.update_resource("chart", chart_id, **kwargs)
700+
701+
def delete_chart(self, chart_id):
702+
"""
703+
delete a chart.
704+
"""
705+
self.delete_resource("chart", chart_id)
706+
682707
def get_dashboard(self, dashboard_id: int) -> Any:
683708
"""
684709
Return a single dashboard.
@@ -703,6 +728,42 @@ def update_dashboard(self, dashboard_id: int, **kwargs: Any) -> Any:
703728
"""
704729
return self.update_resource("dashboard", dashboard_id, **kwargs)
705730

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

0 commit comments

Comments
 (0)