Added logs for save server database

This commit is contained in:
Juan Gilsanz Polo 2022-11-01 19:41:41 +01:00
parent df3034165e
commit bb3f155971
4 changed files with 79 additions and 52 deletions

View file

@ -201,34 +201,34 @@ class ServersProvider with ChangeNotifier {
} }
} }
Future<bool> createServer(Server server) async { Future<dynamic> createServer(Server server) async {
final saved = await saveServerIntoDb(server); final saved = await saveServerIntoDb(server);
if (saved == true) { if (saved == null) {
if (server.defaultServer == true) { if (server.defaultServer == true) {
final defaultServer = await setDefaultServer(server); final defaultServer = await setDefaultServer(server);
if (defaultServer == true) { if (defaultServer == null) {
_serversList.add(server); _serversList.add(server);
notifyListeners(); notifyListeners();
return true; return null;
} }
else { else {
return false; return defaultServer;
} }
} }
else { else {
_serversList.add(server); _serversList.add(server);
notifyListeners(); notifyListeners();
return true; return null;
} }
} }
else { else {
return false; return saved;
} }
} }
Future<bool> setDefaultServer(Server server) async { Future<dynamic> setDefaultServer(Server server) async {
final updated = await setDefaultServerDb(server.id); final updated = await setDefaultServerDb(server.id);
if (updated == true) { if (updated == null) {
List<Server> newServers = _serversList.map((s) { List<Server> newServers = _serversList.map((s) {
if (s.id == server.id) { if (s.id == server.id) {
s.defaultServer = true; s.defaultServer = true;
@ -241,16 +241,16 @@ class ServersProvider with ChangeNotifier {
}).toList(); }).toList();
_serversList = newServers; _serversList = newServers;
notifyListeners(); notifyListeners();
return true; return null;
} }
else { else {
return false; return updated;
} }
} }
Future<bool> editServer(Server server) async { Future<dynamic> editServer(Server server) async {
final result = await editServerDb(server); final result = await editServerDb(server);
if (result == true) { if (result == null) {
List<Server> newServers = _serversList.map((s) { List<Server> newServers = _serversList.map((s) {
if (s.id == server.id) { if (s.id == server.id) {
return server; return server;
@ -261,10 +261,10 @@ class ServersProvider with ChangeNotifier {
}).toList(); }).toList();
_serversList = newServers; _serversList = newServers;
notifyListeners(); notifyListeners();
return true; return null;
} }
else { else {
return false; return result;
} }
} }
@ -380,29 +380,29 @@ class ServersProvider with ChangeNotifier {
} }
} }
Future<bool> saveServerIntoDb(Server server) async { Future<dynamic> saveServerIntoDb(Server server) async {
try { try {
return await _dbInstance!.transaction((txn) async { return await _dbInstance!.transaction((txn) async {
await txn.rawInsert( 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)})', '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) { } catch (e) {
return false; return e;
} }
} }
Future<bool> editServerDb(Server server) async { Future<dynamic> editServerDb(Server server) async {
try { try {
return await _dbInstance!.transaction((txn) async { return await _dbInstance!.transaction((txn) async {
await txn.rawUpdate( 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}"', '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) { } catch (e) {
return false; return e;
} }
} }
@ -419,7 +419,7 @@ class ServersProvider with ChangeNotifier {
} }
} }
Future<bool> setDefaultServerDb(String id) async { Future<dynamic> setDefaultServerDb(String id) async {
try { try {
return await _dbInstance!.transaction((txn) async { return await _dbInstance!.transaction((txn) async {
await txn.rawUpdate( await txn.rawUpdate(
@ -428,10 +428,10 @@ class ServersProvider with ChangeNotifier {
await txn.rawUpdate( await txn.rawUpdate(
'UPDATE servers SET defaultServer = 1 WHERE id = "$id"', 'UPDATE servers SET defaultServer = 1 WHERE id = "$id"',
); );
return true; return null;
}); });
} catch (e) { } catch (e) {
return false; return e;
} }
} }

View file

@ -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/providers/app_config_provider.dart';
import 'package:adguard_home_manager/functions/encode_base64.dart'; import 'package:adguard_home_manager/functions/encode_base64.dart';
import 'package:adguard_home_manager/services/http_requests.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/providers/servers_provider.dart';
import 'package:adguard_home_manager/models/server.dart'; import 'package:adguard_home_manager/models/server.dart';
import 'package:adguard_home_manager/config/system_overlay_style.dart'; import 'package:adguard_home_manager/config/system_overlay_style.dart';
@ -274,7 +275,7 @@ class _AddServerModalState extends State<AddServerModal> {
if (result['result'] == 'success') { if (result['result'] == 'success') {
serverObj.authToken = encodeBase64UserPass(serverObj.user, serverObj.password); serverObj.authToken = encodeBase64UserPass(serverObj.user, serverObj.password);
final serverCreated = await serversProvider.createServer(serverObj); final serverCreated = await serversProvider.createServer(serverObj);
if (serverCreated == true) { if (serverCreated == null) {
serversProvider.setServerStatusLoad(0); serversProvider.setServerStatusLoad(0);
final serverStatus = await getServerStatus(serverObj); final serverStatus = await getServerStatus(serverObj);
if (serverStatus['result'] == 'success') { if (serverStatus['result'] == 'success') {
@ -288,6 +289,13 @@ class _AddServerModalState extends State<AddServerModal> {
Navigator.pop(context); Navigator.pop(context);
} }
else { else {
appConfigProvider.addLog(
AppLog(
type: 'save_connection_db',
dateTime: DateTime.now(),
message: serverCreated.toString()
)
);
ScaffoldMessenger.of(context).showSnackBar( ScaffoldMessenger.of(context).showSnackBar(
SnackBar( SnackBar(
content: Text(AppLocalizations.of(context)!.connectionNotCreated), content: Text(AppLocalizations.of(context)!.connectionNotCreated),
@ -375,13 +383,20 @@ class _AddServerModalState extends State<AddServerModal> {
if (result['result'] == 'success') { if (result['result'] == 'success') {
serverObj.authToken = encodeBase64UserPass(serverObj.user, serverObj.password); serverObj.authToken = encodeBase64UserPass(serverObj.user, serverObj.password);
final serverSaved = await serversProvider.editServer(serverObj); final serverSaved = await serversProvider.editServer(serverObj);
if (serverSaved == true) { if (serverSaved == null) {
Navigator.pop(context); Navigator.pop(context);
} }
else { else {
appConfigProvider.addLog(
AppLog(
type: 'edit_connection_db',
dateTime: DateTime.now(),
message: serverSaved.toString()
)
);
ScaffoldMessenger.of(context).showSnackBar( ScaffoldMessenger.of(context).showSnackBar(
SnackBar( SnackBar(
content: Text(AppLocalizations.of(context)!.connectionNotUpdated), content: Text(AppLocalizations.of(context)!.connectionNotCreated),
backgroundColor: Colors.red, backgroundColor: Colors.red,
) )
); );

View file

@ -5,6 +5,8 @@ import 'package:provider/provider.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:adguard_home_manager/models/server.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'; import 'package:adguard_home_manager/providers/servers_provider.dart';
class DeleteModal extends StatelessWidget { class DeleteModal extends StatelessWidget {
@ -18,24 +20,25 @@ class DeleteModal extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final serversProvider = Provider.of<ServersProvider>(context); final serversProvider = Provider.of<ServersProvider>(context);
final appConfigProvider = Provider.of<AppConfigProvider>(context);
void removeServer() async { void removeServer() async {
final deleted = await serversProvider.removeServer(serverToDelete); final deleted = await serversProvider.removeServer(serverToDelete);
Navigator.pop(context); Navigator.pop(context);
if (deleted == true) { if (deleted == true) {
ScaffoldMessenger.of(context).showSnackBar( showSnacbkar(
SnackBar( context: context,
content: Text(AppLocalizations.of(context)!.connectionRemoved), appConfigProvider: appConfigProvider,
backgroundColor: Colors.green, label: AppLocalizations.of(context)!.connectionRemoved,
) color: Colors.green
); );
} }
else { else {
ScaffoldMessenger.of(context).showSnackBar( showSnacbkar(
SnackBar( context: context,
content: Text(AppLocalizations.of(context)!.connectionCannotBeRemoved), appConfigProvider: appConfigProvider,
backgroundColor: Colors.red, label: AppLocalizations.of(context)!.connectionCannotBeRemoved,
) color: Colors.red
); );
} }
} }

View file

@ -1,4 +1,5 @@
// ignore_for_file: use_build_context_synchronously // ignore_for_file: use_build_context_synchronously
import 'package:adguard_home_manager/functions/snackbar.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:expandable/expandable.dart'; import 'package:expandable/expandable.dart';
import 'package:provider/provider.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/widgets/add_server_modal.dart';
import 'package:adguard_home_manager/providers/app_config_provider.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/classes/process_modal.dart';
import 'package:adguard_home_manager/models/server.dart'; import 'package:adguard_home_manager/models/server.dart';
import 'package:adguard_home_manager/providers/servers_provider.dart'; import 'package:adguard_home_manager/providers/servers_provider.dart';
@ -127,32 +129,39 @@ class _ServersListState extends State<ServersList> with SingleTickerProviderStat
else { else {
process.close(); process.close();
appConfigProvider.addLog(result['log']); appConfigProvider.addLog(result['log']);
ScaffoldMessenger.of(context).showSnackBar( showSnacbkar(
SnackBar( context: context,
content: Text(AppLocalizations.of(context)!.cannotConnect), appConfigProvider: appConfigProvider,
backgroundColor: Colors.red, label: AppLocalizations.of(context)!.cannotConnect,
) color: Colors.red
); );
} }
} }
void setDefaultServer(Server server) async { void setDefaultServer(Server server) async {
final result = await serversProvider.setDefaultServer(server); final result = await serversProvider.setDefaultServer(server);
if (result == true) { if (result == null) {
ScaffoldMessenger.of(context).showSnackBar( showSnacbkar(
SnackBar( context: context,
content: Text(AppLocalizations.of(context)!.connectionDefaultSuccessfully), appConfigProvider: appConfigProvider,
backgroundColor: Colors.green, label: AppLocalizations.of(context)!.connectionDefaultSuccessfully,
) color: Colors.green
); );
} }
else { else {
ScaffoldMessenger.of(context).showSnackBar( appConfigProvider.addLog(
SnackBar( AppLog(
content: Text(AppLocalizations.of(context)!.connectionDefaultFailed), type: 'set_default_server',
backgroundColor: Colors.red, dateTime: DateTime.now(),
message: result.toString()
) )
); );
showSnacbkar(
context: context,
appConfigProvider: appConfigProvider,
label: AppLocalizations.of(context)!.connectionDefaultFailed,
color: Colors.red
);
} }
} }