Logging data
Try-catch function
This commit is contained in:
anhtunz
2025-06-17 16:43:45 +07:00
parent 22fef0e0a8
commit 2d53f2cdd3
41 changed files with 1591 additions and 1299 deletions

View File

@@ -1,16 +1,13 @@
// ignore_for_file: use_build_context_synchronously
import 'dart:async';
import 'dart:convert';
import 'dart:developer';
import 'package:flutter/material.dart';
import '../product/constant/app/app_constants.dart';
import '../product/constant/app/app_constants.dart';
import '../product/services/api_services.dart';
import '../product/base/bloc/base_bloc.dart';
import '../product/services/language_services.dart';
import '../product/shared/shared_snack_bar.dart';
import '../product/utils/response_status_utils.dart';
import '../feature/inter_family/groups/groups_model.dart';
@@ -36,10 +33,10 @@ class InterFamilyBloc extends BlocBase {
@override
void dispose() {}
void getAllGroup(String role) async {
void getAllGroup(BuildContext context, String role) async {
List<Group> groups = [];
sinkCurrentGroups.add(groups);
try {
await apiServices.execute(context, () async {
groups = await apiServices.getAllGroups();
groups = sortGroupByName(groups);
@@ -55,19 +52,13 @@ class InterFamilyBloc extends BlocBase {
return false;
},
).toList();
sinkCurrentGroups.add(currentGroups);
} catch (e) {
// Xử lý lỗi khi jsonDecode thất bại
log("Error decoding JSON: $e");
sinkCurrentGroups.add([]);
}
log("Inter Family Role: $role");
});
}
Future<void> createGroup(
BuildContext context, String name, String description) async {
try {
await apiServices.execute(context, () async {
Map<String, dynamic> body = {"name": name, "description": description};
int? statusCode = await apiServices.createGroup(body);
showSnackBarResponseByStatusCode(
@@ -75,17 +66,12 @@ class InterFamilyBloc extends BlocBase {
statusCode,
appLocalization(context).notification_add_group_success,
appLocalization(context).notification_add_group_failed);
} catch (e) {
if (!context.mounted) return;
showErrorTopSnackBarCustom(
context, e.toString());
}
});
}
Future<void> changeGroupInformation(BuildContext context, String groupID,
String name, String description) async {
try {
await apiServices.execute(context, () async {
Map<String, dynamic> body = {"name": name, "description": description};
int statusCode = await apiServices.updateGroup(body, groupID);
showSnackBarResponseByStatusCode(
@@ -93,44 +79,32 @@ class InterFamilyBloc extends BlocBase {
statusCode,
appLocalization(context).notification_update_group_success,
appLocalization(context).notification_update_group_failed);
} catch (e) {
if (!context.mounted) return;
showErrorTopSnackBarCustom(
context, e.toString());
}
});
}
Future<void> joinGroup(BuildContext context, String groupID) async {
try {
Map<String, dynamic> body = {
"group_id": groupID,
};
Map<String, dynamic> body = {
"group_id": groupID,
};
await apiServices.execute(context, () async {
int statusCode = await apiServices.joinGroup(groupID, body);
showSnackBarResponseByStatusCode(
context,
statusCode,
appLocalization(context).notification_join_request_group_success,
appLocalization(context).notification_join_request_group_failed);
} catch (e) {
if (!context.mounted) return;
showErrorTopSnackBarCustom(
context, e.toString());
}
});
}
Future<void> deleteGroup(BuildContext context, String groupID) async {
try {
await apiServices.execute(context, () async {
int statusCode = await apiServices.deleteGroup(groupID);
showSnackBarResponseByStatusCode(
context,
statusCode,
appLocalization(context).notification_delete_group_success,
appLocalization(context).notification_delete_group_failed);
} catch (e) {
if (!context.mounted) return;
showErrorTopSnackBarCustom(
context, e.toString());
}
});
}
List<Group> sortGroupByName(List<Group> groups) {