diff --git a/lib/features/mongodb/mongo_collections_view.dart b/lib/features/mongodb/mongo_collections_view.dart index 4bc3acd8..725519cd 100644 --- a/lib/features/mongodb/mongo_collections_view.dart +++ b/lib/features/mongodb/mongo_collections_view.dart @@ -1,3 +1,5 @@ +import 'package:querya_desktop/shared/report_error.dart'; +import 'package:querya_desktop/core/database/database_error_mapper.dart'; import 'package:flutter/widgets.dart'; import 'dart:math' show min; @@ -177,10 +179,10 @@ class _MongoCollectionsViewState extends material.State { ); _newCollController.clear(); await _load(); - } catch (e) { + } catch (e, st) { if (mounted) { setState(() { - _error = 'Failed to create collection: $e'; + _error = failureMessage('Failed to create collection', e, where: 'MongoCollectionsView', stack: st, driver: DatabaseDriver.mongodb); }); } } @@ -203,10 +205,10 @@ class _MongoCollectionsViewState extends material.State { name, ); await _load(); - } catch (e) { + } catch (e, st) { if (mounted) { setState(() { - _error = 'Failed to drop collection: $e'; + _error = failureMessage('Failed to drop collection', e, where: 'MongoCollectionsView', stack: st, driver: DatabaseDriver.mongodb); }); } } diff --git a/lib/features/mongodb/mongo_databases_view.dart b/lib/features/mongodb/mongo_databases_view.dart index 9a358341..94c1818a 100644 --- a/lib/features/mongodb/mongo_databases_view.dart +++ b/lib/features/mongodb/mongo_databases_view.dart @@ -1,3 +1,5 @@ +import 'package:querya_desktop/shared/report_error.dart'; +import 'package:querya_desktop/core/database/database_error_mapper.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter/material.dart' as material; import 'package:querya_desktop/core/theme/querya_ui_colors.dart'; @@ -136,7 +138,7 @@ class _MongoDatabasesViewState extends State { _isLoading = false; }); } - } catch (e) { + } catch (e, st) { final fallback = _connection?.effectiveDatabase; if (fallback != null && fallback.isNotEmpty && @@ -152,7 +154,7 @@ class _MongoDatabasesViewState extends State { } if (mounted) { setState(() { - _error = 'Failed to list databases: $e'; + _error = failureMessage('Failed to list databases', e, where: 'MongoDatabasesView', stack: st, driver: DatabaseDriver.mongodb); _isLoading = false; }); } @@ -181,10 +183,10 @@ class _MongoDatabasesViewState extends State { ); _newDbController.clear(); await _loadDatabases(); - } catch (e) { + } catch (e, st) { if (mounted) { setState(() { - _error = 'Failed to create database: $e'; + _error = failureMessage('Failed to create database', e, where: 'MongoDatabasesView', stack: st, driver: DatabaseDriver.mongodb); }); } } @@ -209,10 +211,10 @@ class _MongoDatabasesViewState extends State { {'dropDatabase': 1}, ); await _loadDatabases(); - } catch (e) { + } catch (e, st) { if (mounted) { setState(() { - _error = 'Failed to drop database: $e'; + _error = failureMessage('Failed to drop database', e, where: 'MongoDatabasesView', stack: st, driver: DatabaseDriver.mongodb); }); } } diff --git a/lib/features/mongodb/mongo_document_editor.dart b/lib/features/mongodb/mongo_document_editor.dart index 1015ac84..a550662f 100644 --- a/lib/features/mongodb/mongo_document_editor.dart +++ b/lib/features/mongodb/mongo_document_editor.dart @@ -1,3 +1,5 @@ +import 'package:querya_desktop/shared/report_error.dart'; +import 'package:querya_desktop/core/database/database_error_mapper.dart'; import 'package:flutter/widgets.dart'; import 'dart:async' show unawaited; @@ -112,9 +114,9 @@ class _MongoDocumentEditorState extends material.State { setState(() { _dirty = false; }); - } catch (e) { + } catch (e, st) { if (mounted) { - setState(() => _error = 'Failed to reload: $e'); + setState(() => _error = failureMessage('Failed to reload', e, where: 'MongoDocumentEditor', stack: st, driver: DatabaseDriver.mongodb)); } } } @@ -196,11 +198,11 @@ class _MongoDocumentEditorState extends material.State { Future.delayed(const Duration(seconds: 3), () { if (mounted) setState(() => _success = null); }); - } catch (e) { + } catch (e, st) { if (mounted) { setState(() { _saving = false; - _error = 'Failed to save: $e'; + _error = failureMessage('Failed to save', e, where: 'MongoDocumentEditor', stack: st, driver: DatabaseDriver.mongodb); }); } } @@ -234,11 +236,11 @@ class _MongoDocumentEditorState extends material.State { ); if (!mounted) return; widget.onDocumentDeleted?.call(); - } catch (e) { + } catch (e, st) { if (mounted) { setState(() { _deleting = false; - _error = 'Failed to delete: $e'; + _error = failureMessage('Failed to delete', e, where: 'MongoDocumentEditor', stack: st, driver: DatabaseDriver.mongodb); }); } } diff --git a/lib/features/mongodb/mongo_documents_view.dart b/lib/features/mongodb/mongo_documents_view.dart index 9e6ba924..e0b19e8a 100644 --- a/lib/features/mongodb/mongo_documents_view.dart +++ b/lib/features/mongodb/mongo_documents_view.dart @@ -1,3 +1,5 @@ +import 'package:querya_desktop/shared/report_error.dart'; +import 'package:querya_desktop/core/database/database_error_mapper.dart'; import 'package:flutter/widgets.dart'; import 'dart:async' show unawaited; @@ -297,10 +299,10 @@ class _MongoDocumentsViewState extends material.State { doc, ); await _load(); - } catch (e) { + } catch (e, st) { if (mounted) { setState(() { - _error = 'Failed to insert: $e'; + _error = failureMessage('Failed to insert', e, where: 'MongoDocumentsView', stack: st, driver: DatabaseDriver.mongodb); }); } } @@ -356,10 +358,10 @@ class _MongoDocumentsViewState extends material.State { {'_id': id}, ); await _load(); - } catch (e) { + } catch (e, st) { if (mounted) { setState(() { - _error = 'Failed to delete: $e'; + _error = failureMessage('Failed to delete', e, where: 'MongoDocumentsView', stack: st, driver: DatabaseDriver.mongodb); }); } } diff --git a/lib/features/mongodb/mongo_indexes_view.dart b/lib/features/mongodb/mongo_indexes_view.dart index ead26954..5510aa64 100644 --- a/lib/features/mongodb/mongo_indexes_view.dart +++ b/lib/features/mongodb/mongo_indexes_view.dart @@ -1,3 +1,5 @@ +import 'package:querya_desktop/shared/report_error.dart'; +import 'package:querya_desktop/core/database/database_error_mapper.dart'; import 'package:flutter/widgets.dart'; import 'dart:async' show unawaited; @@ -176,12 +178,15 @@ class _MongoIndexesViewState extends material.State { variant: AppToastVariant.success, ); unawaited(_load()); - } catch (e) { + } catch (e, st) { if (!mounted) return; - showAppToast( - context: context, - message: 'Failed to drop index: $e', - variant: AppToastVariant.error, + reportError( + context, + e, + stack: st, + where: 'MongoIndexesView', + action: 'Failed to drop index', + driver: DatabaseDriver.mongodb, ); } } diff --git a/lib/features/mongodb/mongodb_connection_form.dart b/lib/features/mongodb/mongodb_connection_form.dart index ffc6e5e4..808ec647 100644 --- a/lib/features/mongodb/mongodb_connection_form.dart +++ b/lib/features/mongodb/mongodb_connection_form.dart @@ -1,3 +1,5 @@ +import 'package:querya_desktop/shared/report_error.dart'; +import 'package:querya_desktop/core/database/database_error_mapper.dart'; import 'package:flutter/widgets.dart'; import 'dart:async'; @@ -321,8 +323,8 @@ class _MongoConnectionFormContentState if (mounted) { _showTestResult(result.ok ? 'success' : (result.error ?? 'failed')); } - } catch (e) { - if (mounted) _showTestResult('error: $e'); + } catch (e, st) { + if (mounted) _showTestResult(failureMessage('error', e, where: 'MongoConnectionForm', stack: st, driver: DatabaseDriver.mongodb)); } }