From bb3f1559710a3a367b2fe1c38b0e44b87d9173f3 Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Tue, 1 Nov 2022 19:41:41 +0100 Subject: [PATCH] Added logs for save server database --- lib/providers/servers_provider.dart | 48 +++++++++++----------- lib/widgets/add_server_modal.dart | 21 ++++++++-- lib/widgets/servers_list/delete_modal.dart | 23 ++++++----- lib/widgets/servers_list/servers_list.dart | 39 +++++++++++------- 4 files changed, 79 insertions(+), 52 deletions(-) diff --git a/lib/providers/servers_provider.dart b/lib/providers/servers_provider.dart index 04544d7..8ec02d7 100644 --- a/lib/providers/servers_provider.dart +++ b/lib/providers/servers_provider.dart @@ -201,34 +201,34 @@ class ServersProvider with ChangeNotifier { } } - Future createServer(Server server) async { + Future createServer(Server server) async { final saved = await saveServerIntoDb(server); - if (saved == true) { + if (saved == null) { if (server.defaultServer == true) { final defaultServer = await setDefaultServer(server); - if (defaultServer == true) { + if (defaultServer == null) { _serversList.add(server); notifyListeners(); - return true; + return null; } else { - return false; + return defaultServer; } } else { _serversList.add(server); notifyListeners(); - return true; + return null; } } else { - return false; + return saved; } } - Future setDefaultServer(Server server) async { + Future setDefaultServer(Server server) async { final updated = await setDefaultServerDb(server.id); - if (updated == true) { + if (updated == null) { List newServers = _serversList.map((s) { if (s.id == server.id) { s.defaultServer = true; @@ -241,16 +241,16 @@ class ServersProvider with ChangeNotifier { }).toList(); _serversList = newServers; notifyListeners(); - return true; + return null; } else { - return false; + return updated; } } - Future editServer(Server server) async { + Future editServer(Server server) async { final result = await editServerDb(server); - if (result == true) { + if (result == null) { List newServers = _serversList.map((s) { if (s.id == server.id) { return server; @@ -261,10 +261,10 @@ class ServersProvider with ChangeNotifier { }).toList(); _serversList = newServers; notifyListeners(); - return true; + return null; } else { - return false; + return result; } } @@ -380,29 +380,29 @@ class ServersProvider with ChangeNotifier { } } - Future saveServerIntoDb(Server server) async { + Future saveServerIntoDb(Server server) async { try { return await _dbInstance!.transaction((txn) async { await txn.rawInsert( 'INSERT INTO servers (id, name, connectionMethod, domain, path, port, user, password, defaultServer, authToken, runningOnHa) VALUES ("${server.id}", "${server.name}", "${server.connectionMethod}", "${server.domain}", ${server.path != null ? "${server.path}" : null}, ${server.port}, "${server.user}", "${server.password}", 0, "${server.authToken}", ${convertFromBoolToInt(server.runningOnHa)})', ); - return true; + return null; }); } catch (e) { - return false; + return e; } } - Future editServerDb(Server server) async { + Future editServerDb(Server server) async { try { return await _dbInstance!.transaction((txn) async { await txn.rawUpdate( 'UPDATE servers SET name = "${server.name}", connectionMethod = "${server.connectionMethod}", domain = "${server.domain}", path = ${server.path != null ? "${server.path}" : null}, port = ${server.port}, user = "${server.user}", password = "${server.password}", authToken = "${server.authToken}", runningOnHa = ${convertFromBoolToInt(server.runningOnHa)} WHERE id = "${server.id}"', ); - return true; + return null; }); } catch (e) { - return false; + return e; } } @@ -419,7 +419,7 @@ class ServersProvider with ChangeNotifier { } } - Future setDefaultServerDb(String id) async { + Future setDefaultServerDb(String id) async { try { return await _dbInstance!.transaction((txn) async { await txn.rawUpdate( @@ -428,10 +428,10 @@ class ServersProvider with ChangeNotifier { await txn.rawUpdate( 'UPDATE servers SET defaultServer = 1 WHERE id = "$id"', ); - return true; + return null; }); } catch (e) { - return false; + return e; } } diff --git a/lib/widgets/add_server_modal.dart b/lib/widgets/add_server_modal.dart index 8bf540b..ebf2676 100644 --- a/lib/widgets/add_server_modal.dart +++ b/lib/widgets/add_server_modal.dart @@ -10,6 +10,7 @@ import 'package:adguard_home_manager/widgets/custom_radio_toggle.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; import 'package:adguard_home_manager/functions/encode_base64.dart'; import 'package:adguard_home_manager/services/http_requests.dart'; +import 'package:adguard_home_manager/models/app_log.dart'; import 'package:adguard_home_manager/providers/servers_provider.dart'; import 'package:adguard_home_manager/models/server.dart'; import 'package:adguard_home_manager/config/system_overlay_style.dart'; @@ -274,7 +275,7 @@ class _AddServerModalState extends State { if (result['result'] == 'success') { serverObj.authToken = encodeBase64UserPass(serverObj.user, serverObj.password); final serverCreated = await serversProvider.createServer(serverObj); - if (serverCreated == true) { + if (serverCreated == null) { serversProvider.setServerStatusLoad(0); final serverStatus = await getServerStatus(serverObj); if (serverStatus['result'] == 'success') { @@ -288,6 +289,13 @@ class _AddServerModalState extends State { Navigator.pop(context); } else { + appConfigProvider.addLog( + AppLog( + type: 'save_connection_db', + dateTime: DateTime.now(), + message: serverCreated.toString() + ) + ); ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text(AppLocalizations.of(context)!.connectionNotCreated), @@ -375,13 +383,20 @@ class _AddServerModalState extends State { if (result['result'] == 'success') { serverObj.authToken = encodeBase64UserPass(serverObj.user, serverObj.password); final serverSaved = await serversProvider.editServer(serverObj); - if (serverSaved == true) { + if (serverSaved == null) { Navigator.pop(context); } else { + appConfigProvider.addLog( + AppLog( + type: 'edit_connection_db', + dateTime: DateTime.now(), + message: serverSaved.toString() + ) + ); ScaffoldMessenger.of(context).showSnackBar( SnackBar( - content: Text(AppLocalizations.of(context)!.connectionNotUpdated), + content: Text(AppLocalizations.of(context)!.connectionNotCreated), backgroundColor: Colors.red, ) ); diff --git a/lib/widgets/servers_list/delete_modal.dart b/lib/widgets/servers_list/delete_modal.dart index fff1b32..2ba22bf 100644 --- a/lib/widgets/servers_list/delete_modal.dart +++ b/lib/widgets/servers_list/delete_modal.dart @@ -5,6 +5,8 @@ import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/models/server.dart'; +import 'package:adguard_home_manager/functions/snackbar.dart'; +import 'package:adguard_home_manager/providers/app_config_provider.dart'; import 'package:adguard_home_manager/providers/servers_provider.dart'; class DeleteModal extends StatelessWidget { @@ -18,24 +20,25 @@ class DeleteModal extends StatelessWidget { @override Widget build(BuildContext context) { final serversProvider = Provider.of(context); + final appConfigProvider = Provider.of(context); void removeServer() async { final deleted = await serversProvider.removeServer(serverToDelete); Navigator.pop(context); if (deleted == true) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(AppLocalizations.of(context)!.connectionRemoved), - backgroundColor: Colors.green, - ) + showSnacbkar( + context: context, + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.connectionRemoved, + color: Colors.green ); } else { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(AppLocalizations.of(context)!.connectionCannotBeRemoved), - backgroundColor: Colors.red, - ) + showSnacbkar( + context: context, + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.connectionCannotBeRemoved, + color: Colors.red ); } } diff --git a/lib/widgets/servers_list/servers_list.dart b/lib/widgets/servers_list/servers_list.dart index adcd43b..6f1b291 100644 --- a/lib/widgets/servers_list/servers_list.dart +++ b/lib/widgets/servers_list/servers_list.dart @@ -1,4 +1,5 @@ // ignore_for_file: use_build_context_synchronously +import 'package:adguard_home_manager/functions/snackbar.dart'; import 'package:flutter/material.dart'; import 'package:expandable/expandable.dart'; import 'package:provider/provider.dart'; @@ -8,6 +9,7 @@ import 'package:adguard_home_manager/widgets/servers_list/delete_modal.dart'; import 'package:adguard_home_manager/widgets/add_server_modal.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; +import 'package:adguard_home_manager/models/app_log.dart'; import 'package:adguard_home_manager/classes/process_modal.dart'; import 'package:adguard_home_manager/models/server.dart'; import 'package:adguard_home_manager/providers/servers_provider.dart'; @@ -127,32 +129,39 @@ class _ServersListState extends State with SingleTickerProviderStat else { process.close(); appConfigProvider.addLog(result['log']); - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(AppLocalizations.of(context)!.cannotConnect), - backgroundColor: Colors.red, - ) + showSnacbkar( + context: context, + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.cannotConnect, + color: Colors.red ); } } void setDefaultServer(Server server) async { final result = await serversProvider.setDefaultServer(server); - if (result == true) { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(AppLocalizations.of(context)!.connectionDefaultSuccessfully), - backgroundColor: Colors.green, - ) + if (result == null) { + showSnacbkar( + context: context, + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.connectionDefaultSuccessfully, + color: Colors.green ); } else { - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(AppLocalizations.of(context)!.connectionDefaultFailed), - backgroundColor: Colors.red, + appConfigProvider.addLog( + AppLog( + type: 'set_default_server', + dateTime: DateTime.now(), + message: result.toString() ) ); + showSnacbkar( + context: context, + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.connectionDefaultFailed, + color: Colors.red + ); } }