Skip to content

Commit

Permalink
fix: normalized log message
Browse files Browse the repository at this point in the history
  • Loading branch information
evan361425 committed Dec 29, 2024
1 parent 211a798 commit 597c5ee
Show file tree
Hide file tree
Showing 27 changed files with 204 additions and 162 deletions.
1 change: 1 addition & 0 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ plugins {
id "kotlin-android"
id "dev.flutter.flutter-gradle-plugin"
id "com.google.gms.google-services"
id 'com.google.firebase.firebase-perf'
id "com.google.firebase.crashlytics"
}

Expand Down
1 change: 1 addition & 0 deletions android/settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ plugins {
id "com.android.application" version "7.3.0" apply false
id "org.jetbrains.kotlin.android" version "1.9.25" apply false
id "com.google.gms.google-services" version "4.4.0" apply false
id "com.google.firebase.firebase-perf" version "1.4.1" apply false
id "com.google.firebase.crashlytics" version "2.9.9" apply false
}

Expand Down
1 change: 1 addition & 0 deletions firebase.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"flutter":{"platforms":{"android":{"default":{"projectId":"android-pos-syst-1553173065663","appId":"1:747759991726:android:2943f641957927a1","fileOutput":"android/app/google-services.json"}},"dart":{"lib/firebase_options.dart":{"projectId":"android-pos-syst-1553173065663","configurations":{"android":"1:747759991726:android:2943f641957927a1"}}}}}}
13 changes: 6 additions & 7 deletions lib/components/sign_in_button.dart
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,6 @@ class SignInButton extends StatelessWidget {
stream: Auth.instance.authStateChanges(),
builder: (context, snapshot) {
User user = User(user: snapshot.data);
// if (kDebugMode) {
// user = User(displayName: 'Test');
// }

// User is not signed in
if (user.notSignedIn) {
Expand Down Expand Up @@ -162,10 +159,12 @@ class _GoogleSignInButtonState extends State<_GoogleSignInButton> {
try {
success = await Auth.instance.signIn();
} catch (e, stack) {
Log.err(e, 'auth_signin', stack);
setState(() {
error = e is firebase.FirebaseAuthException ? e.message : e.toString();
});
Log.err(e, 'login', stack);
if (mounted) {
setState(() {
error = e is firebase.FirebaseAuthException ? e.message : e.toString();
});
}
} finally {
if (mounted && !success) setState(() => isLoading = false);
}
Expand Down
2 changes: 1 addition & 1 deletion lib/components/style/snackbar_actions.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class LauncherSnackbarAction extends SnackBarAction {
required String link,
required String logCode,
}) : super(onPressed: () {
Log.ger('snackbar launch', logCode, link);
Log.ger('launch_snackbar_action', {'code': logCode, 'link': link});
Launcher.launch(link).ignore();
});
}
30 changes: 15 additions & 15 deletions lib/helpers/exporter/google_sheet_exporter.dart
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class GoogleSheetExporter extends DataExporter {
List<String> sheetTitles,
) async {
final sheetsApi = await getSheetsApi(true);
Log.ger('add_spreadsheet start', _logCode);
Log.out('add_spreadsheet start', _logCode);
final result = await sheetsApi?.spreadsheets.create(
gs.Spreadsheet(
properties: gs.SpreadsheetProperties(title: title),
Expand All @@ -43,11 +43,11 @@ class GoogleSheetExporter extends DataExporter {
);

if (result?.spreadsheetId == null) {
Log.ger('add_spreadsheet miss', _logCode);
Log.out('add_spreadsheet miss', _logCode);
return null;
}

Log.ger('add_spreadsheet success', _logCode);
Log.out('add_spreadsheet success', _logCode);
return GoogleSpreadsheet(
id: result!.spreadsheetId!,
name: title,
Expand All @@ -58,19 +58,19 @@ class GoogleSheetExporter extends DataExporter {

Future<GoogleSpreadsheet?> getSpreadsheet(String id) async {
final sheetsApi = await getSheetsApi(false);
Log.ger('get_spreadsheet start', _logCode);
Log.out('get_spreadsheet start', _logCode);
final res = await sheetsApi?.spreadsheets.get(
id,
includeGridData: false,
$fields: 'properties.title,sheets.properties(sheetId,title)',
);

if (res?.properties?.title == null) {
Log.ger('get_spreadsheet miss', _logCode);
Log.out('get_spreadsheet miss', _logCode);
return null;
}

Log.ger('get_spreadsheet done', _logCode);
Log.out('get_spreadsheet done', _logCode);
return GoogleSpreadsheet(
id: id,
name: res!.properties!.title!,
Expand All @@ -93,19 +93,19 @@ class GoogleSheetExporter extends DataExporter {
];

final sheetApi = await getSheetsApi(spreadsheet.isOrigin);
Log.ger('add_sheets start ${titles.length}', _logCode);
Log.out('add_sheets start ${titles.length}', _logCode);
final result = await sheetApi?.spreadsheets.batchUpdate(
gs.BatchUpdateSpreadsheetRequest(requests: requests),
spreadsheet.id,
);

final replies = result?.replies;
if (replies == null || replies.any((reply) => reply.addSheet?.properties?.sheetId == null)) {
Log.ger('add_sheets miss', _logCode);
Log.out('add_sheets miss', _logCode);
return null;
}

Log.ger('add_sheets success', _logCode);
Log.out('add_sheets success', _logCode);
return replies
.map((reply) => GoogleSheetProperties(reply.addSheet!.properties!.sheetId!, reply.addSheet!.properties!.title!))
.toList();
Expand All @@ -115,14 +115,14 @@ class GoogleSheetExporter extends DataExporter {
GoogleSpreadsheet spreadsheet,
) async {
final sheetsApi = await getSheetsApi(spreadsheet.isOrigin);
Log.ger('get_sheets start', _logCode);
Log.out('get_sheets start', _logCode);
final res = await sheetsApi?.spreadsheets.get(
spreadsheet.id,
includeGridData: false,
$fields: 'sheets(properties(sheetId,title))',
);

Log.ger('get_sheets done', _logCode);
Log.out('get_sheets done', _logCode);
return GoogleSheetProperties.fromSheet(res?.sheets);
}

Expand Down Expand Up @@ -161,7 +161,7 @@ class GoogleSheetExporter extends DataExporter {

final sheetsApi = await getSheetsApi(spreadsheet.isOrigin);
final types = sheets.map((e) => e.typeName).join(' ');
Log.ger('update_sheet $types', _logCode);
Log.out('update_sheet $types', _logCode);
await sheetsApi?.spreadsheets.batchUpdate(
gs.BatchUpdateSpreadsheetRequest(requests: requests),
spreadsheet.id,
Expand Down Expand Up @@ -190,7 +190,7 @@ class GoogleSheetExporter extends DataExporter {

final sheetsApi = await getSheetsApi(spreadsheet.isOrigin);
final types = sheets.map((e) => e.typeName).join(' ');
Log.ger('append_values $types', _logCode);
Log.out('append_values $types', _logCode);
await sheetsApi?.spreadsheets.values.batchUpdate(
gs.BatchUpdateValuesRequest(
includeValuesInResponse: false,
Expand All @@ -209,7 +209,7 @@ class GoogleSheetExporter extends DataExporter {
Iterable<List<Object>> data,
) async {
final sheetsApi = await getSheetsApi(spreadsheet.isOrigin);
Log.ger('append_values ${sheet.typeName}', _logCode);
Log.out('append_values ${sheet.typeName}', _logCode);
await sheetsApi?.spreadsheets.values.append(
gs.ValueRange(
majorDimension: 'ROWS',
Expand All @@ -231,7 +231,7 @@ class GoogleSheetExporter extends DataExporter {
required int neededColumns,
}) async {
final sheetsApi = await getSheetsApi(spreadsheet.isOrigin);
Log.ger('get_data start', _logCode);
Log.out('get_data start', _logCode);
final result = await sheetsApi?.spreadsheets.values.get(
spreadsheet.id,
// TODO: if neededColumns are greater than 26, this must change
Expand Down
32 changes: 17 additions & 15 deletions lib/helpers/logger.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,25 @@ class Log {
}

static void ger(
String action,
String code, [
String? message,
String event, [
Map<String, Object?>? parameters,
@visibleForTesting bool forceSend = false,
]) {
assert(!code.contains('.'));
if (message != null) {
developer.log('$action - $message', name: code);
} else {
developer.log(action, name: code);
}
]) async {
assert(!event.contains('.'), 'should not contain "."');
final message = parameters?.entries.map((e) => '${e.key}=${e.value}').join(' ');
developer.log(message ?? '', name: event);

if (forceSend || allowSendEvents) {
FirebaseAnalytics.instance.logEvent(
name: '${code}_$action',
parameters: message != null ? {'message': message} : null,
final Map<String, Object> filtered = <String, Object>{};
parameters?.forEach((String key, Object? value) {
if (value != null) {
filtered[key] = value;
}
});

await FirebaseAnalytics.instance.logEvent(
name: event,
parameters: filtered,
);
}
}
Expand All @@ -39,10 +42,9 @@ class Log {
StackTrace? stackTrace,
@visibleForTesting bool forceSend = false,
]) {
assert(!code.contains('.'));
assert(() {
errorCount++;
return true;
return !code.contains('.');
}());
developer.log(
error.toString(),
Expand Down
6 changes: 3 additions & 3 deletions lib/models/model.dart
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ abstract class Model<T extends ModelObject> extends ChangeNotifier {
}

Future<void> remove() async {
Log.ger('remove start', logName, toString());
Log.ger('remove_item', {'type': logName, 'name': toString()});

await removeRemotely();

Expand All @@ -68,7 +68,7 @@ abstract class Model<T extends ModelObject> extends ChangeNotifier {

if (updateData.isEmpty) return;

Log.ger('$event start', logName, toString());
Log.ger('update_item', {'type': logName, 'name': toString()});

await save(updateData);

Expand Down Expand Up @@ -116,7 +116,7 @@ mixin ModelImage<T extends ModelObject> on Model<T> {
}

Future<void> saveImage(String? image) async {
Log.ger('save_image', logName, toString());
Log.ger('update_item_image', {'type': logName, 'name': toString()});
await save({'$prefix.imagePath': image});

imagePath = image;
Expand Down
6 changes: 3 additions & 3 deletions lib/models/printer.dart
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ class Printers extends ChangeNotifier with Repository<Printer>, RepositoryStorag
}

Future<void> saveProperties() async {
Log.ger('update repo start', storageStore.name, toString());
Log.ger('update_printers', {'type': storageStore.name, 'density': density.index});

await Storage.instance.set(storageStore, {
'setting': {
Expand Down Expand Up @@ -192,14 +192,14 @@ class Printer extends Model<PrinterObject> with ModelStorage<PrinterObject> impl

/// Connect printer
Future<bool> connect() {
Log.ger('start', 'printer_connect');
Log.ger('connect_printer');

return p.connect();
}

/// Disconnect printer, it is ok if not connected
Future<void> disconnect() {
Log.ger('start', 'printer_disconnect');
Log.ger('disconnect_printer');

return p.disconnect();
}
Expand Down
6 changes: 3 additions & 3 deletions lib/models/repository.dart
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ mixin RepositoryOrderable<T extends ModelOrderable> on Repository<T> {
.toList();

if (data.isNotEmpty) {
Log.ger('reorder start', items.first.logName, data.length.toString());
Log.ger('reorder_items', {'type': items.first.logName, 'length': data.length});
await saveBatch(data);

notifyItems();
Expand Down Expand Up @@ -206,7 +206,7 @@ mixin RepositoryStorage<T extends Model> on Repository<T> {
prepareItem();

if (versionChanged) {
Log.ger('upgrade start', storageStore.name, _items.toString());
Log.ger('upgrade_items', {'type': storageStore.name, 'length': _items.length});
await Storage.instance.setAll(storageStore, {
for (final item in _items.values) item.prefix: item.toObject().toMap(),
});
Expand All @@ -225,7 +225,7 @@ mixin RepositoryStorage<T extends Model> on Repository<T> {

@override
Future<void> saveItem(T item) {
Log.ger('add start', storageStore.name, item.toString());
Log.ger('add_item', {'type': storageStore.name, 'name': item.toString()});

final data = item.toObject().toMap();
return repoType == RepositoryStorageType.pureRepo
Expand Down
6 changes: 3 additions & 3 deletions lib/models/repository/cart.dart
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ class Cart extends ChangeNotifier {

if (paid < price) return CheckoutStatus.paidNotEnough;

Log.ger(name, 'order_paid');
Log.ger('begin_order_checkout', {'name': name, 'paid': paid, 'price': price});
final data = toObject(paid: paid);

final receipt = await Printers.instance.generateReceipts(context: context, order: data);
Expand Down Expand Up @@ -172,7 +172,7 @@ class Cart extends ChangeNotifier {
final able = !Cart.instance.isEmpty;

if (able) {
Log.ger('start', 'order_stash');
Log.ger('begin_order_stash');

await StashedOrders.instance.stash(toObject());

Expand All @@ -184,7 +184,7 @@ class Cart extends ChangeNotifier {

/// Restore the order.
void restore(OrderObject order) {
Log.ger('start', 'order_cart_restore');
Log.ger('begin_order_restore');

products
..clear()
Expand Down
3 changes: 2 additions & 1 deletion lib/models/repository/cashier.dart
Original file line number Diff line number Diff line change
Expand Up @@ -271,10 +271,11 @@ class Cashier extends ChangeNotifier {
/// If [record] is null, it will use current currency
Future<void> setDefault([Iterable? record]) async {
if (record == null) {
Log.ger('changed', 'cashier_default');
final old = defaultTotal;
_default
..clear()
..addAll([for (final item in _current) CashierUnitObject(unit: item.unit, count: item.count)]);
Log.ger('cashier_reset', {'before': old, 'current': defaultTotal});

notifyListeners();
return _updateDefaultStorage();
Expand Down
Loading

0 comments on commit 597c5ee

Please sign in to comment.