From 68936e398ac5a0222b283fa33637b24915469a70 Mon Sep 17 00:00:00 2001 From: Andrew nuark G Date: Mon, 8 May 2023 12:48:28 +0700 Subject: [PATCH] Added delete table button --- lib/pages/home_panels/tables_list_panel.dart | 44 +++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/lib/pages/home_panels/tables_list_panel.dart b/lib/pages/home_panels/tables_list_panel.dart index 109c376..90987bd 100644 --- a/lib/pages/home_panels/tables_list_panel.dart +++ b/lib/pages/home_panels/tables_list_panel.dart @@ -66,6 +66,43 @@ class TablesListPanelController extends GetxController { Future openTable(TableDefinition table) async { await OpenTableDialog.show(table); } + + Future deleteTable(TableDefinition table) async { + try { + final resp = await ApiController.to.apiClient.dropTable( + tableName: table.tableName, + ); + + final respData = resp.data; + if (respData == null) { + throw Exception("No data in response"); + } + + Get.snackbar( + "Table deleted", + "${table.tableName.pascalCase} was deleted", + ); + refreshData(); + } on DioError catch (e) { + final respData = e.response?.data; + if (respData != null) { + Get.snackbar( + "Error trying to delete table", + "${respData['error']}", + ); + } else { + Get.snackbar( + "Error trying to delete table", + "$e", + ); + } + } catch (e) { + Get.snackbar( + "Error trying to delete table", + "$e", + ); + } + } } class TablesListPanel extends GetView { @@ -181,7 +218,12 @@ class TablesListPanel extends GetView { ), ), ], - ) + ), + if (!table.system) + ElevatedButton( + onPressed: () => controller.deleteTable(table), + child: const Text("Delete"), + ).paddingOnly(top: 8) ], ), ),