feat(app): refactoring of sentry using, feat(become_consultant): fixed possible infinite loading, feat(push_notifications): fixed push navigation from paid plan push

This commit is contained in:
misha
2026-04-07 10:05:11 +03:00
parent b6b13b1db5
commit aac085def4
133 changed files with 2344 additions and 2456 deletions

View File

@@ -3,6 +3,7 @@ import 'dart:developer';
import 'package:eatvio_app/features/feed/presentation/bloc/consultants_cubit/consultants_state.dart';
import 'package:eatvio_app/features/feed/repositories/feed_repository.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:eatvio_app/core/error_reporting/report_from.dart';
class ConsultantsCubit extends Cubit<ConsultantsState> {
final FeedRepository feedRepository;
@@ -21,6 +22,7 @@ class ConsultantsCubit extends Cubit<ConsultantsState> {
),
);
} catch (e, st) {
await reportFrom(e, st, this);
log(e.toString(), stackTrace: st);
emit(ConsultantsState.error(errorMessage: e.toString()));
}

View File

@@ -8,6 +8,7 @@ import 'package:eatvio_app/features/diets/repositories/diet_repository.dart';
import 'package:eatvio_app/features/feed/presentation/bloc/diets_cubit/diets_state.dart';
import 'package:eatvio_app/features/feed/repositories/feed_repository.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:eatvio_app/core/error_reporting/report_from.dart';
class DietsCubit extends Cubit<DietsState> {
final FeedRepository feedRepository;
@@ -109,6 +110,7 @@ class DietsCubit extends Cubit<DietsState> {
),
);
} catch (e, st) {
await reportFrom(e, st, this);
log(e.toString(), stackTrace: st);
emit(
state.copyWith(isLoading: false, errorMessage: e.toString()),
@@ -144,7 +146,8 @@ class DietsCubit extends Cubit<DietsState> {
),
);
}
} catch (e) {
} catch (e, st) {
await reportFrom(e, st, this);
emit(
state.copyWith(isLoading: false, errorMessage: e.toString()),
);
@@ -191,7 +194,8 @@ class DietsCubit extends Cubit<DietsState> {
() async {
try {
await dietsRepository.likeDiet(id);
} catch (e) {
} catch (e, st) {
await reportFrom(e, st, this);
log(e.toString());
emit(
state.copyWith(
@@ -287,7 +291,8 @@ class DietsCubit extends Cubit<DietsState> {
() async {
try {
await dietsRepository.addToFavorite(id);
} catch (e) {
} catch (e, st) {
await reportFrom(e, st, this);
log(e.toString());
showErrorToast('Произошла ошибка. Попробуйте ещё раз через некоторое время');
emit(
@@ -327,7 +332,8 @@ class DietsCubit extends Cubit<DietsState> {
() async {
try {
await dietsRepository.removeFromFavorite(id);
} catch (e) {
} catch (e, st) {
await reportFrom(e, st, this);
log(e.toString());
showErrorToast('Произошла ошибка. Попробуйте ещё раз через некоторое время');
emit(
@@ -348,7 +354,8 @@ class DietsCubit extends Cubit<DietsState> {
try {
await dietsRepository.deleteDiet(dietId);
return true;
} catch (e) {
} catch (e, st) {
await reportFrom(e, st, this);
return false;
}
}

View File

@@ -4,6 +4,7 @@ import 'package:eatvio_app/features/feed/models/feed_blog_post_model.dart';
import 'package:eatvio_app/features/feed/presentation/bloc/feed_cubit/feed_state.dart';
import 'package:eatvio_app/features/feed/repositories/feed_repository.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:eatvio_app/core/error_reporting/report_from.dart';
class FeedCubit extends Cubit<FeedState> {
final FeedRepository feedRepository;
@@ -45,7 +46,8 @@ class FeedCubit extends Cubit<FeedState> {
if (!isClosed) {
emit(FeedState.loaded(feedBlogPostList: feedBlogPosts.feedBlogPostList, isLoading: false));
}
} catch (e) {
} catch (e, st) {
await reportFrom(e, st, this);
if (!isClosed) {
emit(FeedState.error(errorMessage: e.toString()));
}
@@ -69,7 +71,8 @@ class FeedCubit extends Cubit<FeedState> {
emit(FeedState.loaded(feedBlogPostList: [...(state as FeedStateLoaded).feedBlogPostList, ...feedBlogPosts.feedBlogPostList], isLoading: isLoading));
}
}
} catch (e) {
} catch (e, st) {
await reportFrom(e, st, this);
if (!isClosed) {
emit(FeedState.error(errorMessage: e.toString()));
}
@@ -81,14 +84,48 @@ class FeedCubit extends Cubit<FeedState> {
try {
await feedRepository.likeBlogPost(id: id);
} catch (e, st) {
await reportFrom(e, st, this);
log(e.toString(), stackTrace: st);
}
}
Future<void> unlikedPost(int id) async => await feedRepository.unlikedBlogPost(id: id);
Future<void> unlikedPost(int id) async {
try {
await feedRepository.unlikedBlogPost(id: id);
} catch (e, st) {
await reportFrom(e, st, this);
}
}
Future<void> viewPost(int id) async => await feedRepository.viewPost(id);
Future<void> viewRecipe(String slug) async => await feedRepository.viewRecipe(slug);
Future<void> viewDiet(int id) async => await feedRepository.viewDiet(id);
Future<void> viewPlan(String slug) async => await feedRepository.viewPlan(slug);
Future<void> viewPost(int id) async {
try {
await feedRepository.viewPost(id);
} catch (e, st) {
await reportFrom(e, st, this);
}
}
Future<void> viewRecipe(String slug) async {
try {
await feedRepository.viewRecipe(slug);
} catch (e, st) {
await reportFrom(e, st, this);
}
}
Future<void> viewDiet(int id) async {
try {
await feedRepository.viewDiet(id);
} catch (e, st) {
await reportFrom(e, st, this);
}
}
Future<void> viewPlan(String slug) async {
try {
await feedRepository.viewPlan(slug);
} catch (e, st) {
await reportFrom(e, st, this);
}
}
}

View File

@@ -10,6 +10,7 @@ import 'package:eatvio_app/features/feed/repositories/feed_repository.dart';
import 'package:eatvio_app/features/plans/repositories/plan_repository.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:eatvio_app/core/error_reporting/report_from.dart';
class PlansCubit extends Cubit<PlansState> {
final FeedRepository feedRepository;
@@ -41,6 +42,17 @@ class PlansCubit extends Cubit<PlansState> {
});
}
@override
Future<void> close() async {
EasyDebounce.cancel('loadPlans');
EasyDebounce.cancel('add_or_remove_plan_from_favorite');
EasyDebounce.cancel('like_plan');
likesStateSubscription.cancel();
favoriteStateSubscription.cancel();
commentsStateSubscription.cancel();
await super.close();
}
void changeDurationFilter(int index) {
emit(state.copyWith(filterState: state.filterState.copyWith(durationIndex: index), errorMessage: null));
EasyDebounce.debounce(
@@ -168,6 +180,7 @@ class PlansCubit extends Cubit<PlansState> {
),
);
} catch (e, stackTrace) {
await reportFrom(e, stackTrace, this);
log(e.toString());
log(stackTrace.toString());
emit(state.copyWith(isLoading: isLoading, errorMessage: e.toString()));
@@ -199,7 +212,8 @@ class PlansCubit extends Cubit<PlansState> {
),
);
}
} catch (e) {
} catch (e, st) {
await reportFrom(e, st, this);
emit(state.copyWith(errorMessage: e.toString()));
}
}
@@ -228,7 +242,8 @@ class PlansCubit extends Cubit<PlansState> {
() async {
try {
await planRepository.addToFavorite(slug);
} catch (e) {
} catch (e, st) {
await reportFrom(e, st, this);
log(e.toString());
showErrorToast('Произошла ошибка. Попробуйте ещё раз через некоторое время');
emit(
@@ -268,7 +283,8 @@ class PlansCubit extends Cubit<PlansState> {
() async {
try {
await planRepository.removeFromFavorite(slug);
} catch (e) {
} catch (e, st) {
await reportFrom(e, st, this);
log(e.toString());
showErrorToast('Произошла ошибка. Попробуйте ещё раз через некоторое время');
emit(
@@ -324,7 +340,8 @@ class PlansCubit extends Cubit<PlansState> {
() async {
try {
await planRepository.likePlan(slug);
} catch (e) {
} catch (e, st) {
await reportFrom(e, st, this);
log(e.toString());
emit(
state.copyWith(

View File

@@ -3,6 +3,7 @@ import 'dart:developer';
import 'package:eatvio_app/features/feed/presentation/bloc/profile_cubit/profile_state.dart';
import 'package:eatvio_app/features/profile/repositories/profile_repository.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:eatvio_app/core/error_reporting/report_from.dart';
class FeedProfileCubit extends Cubit<ProfileState> {
final ProfileRepository profileRepository;
@@ -13,6 +14,7 @@ class FeedProfileCubit extends Cubit<ProfileState> {
final profile = await profileRepository.getMyProfile();
emit(state.copyWith(profile: profile));
} catch (e, stackTrace) {
await reportFrom(e, stackTrace, this);
log(e.toString(), stackTrace: stackTrace);
}
}

View File

@@ -9,6 +9,7 @@ import 'package:eatvio_app/features/create_recipe/models/recipe_tag_model.dart';
import 'package:eatvio_app/features/create_recipe/reporitories/recipe_repository.dart';
import 'package:eatvio_app/features/recipe/repositories/about_recipe_repository.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:eatvio_app/core/error_reporting/report_from.dart';
import 'dart:developer';
class RecipesCubit extends Cubit<RecipesState> {
@@ -62,6 +63,7 @@ class RecipesCubit extends Cubit<RecipesState> {
);
lastPage = currentPage;
} catch (e, st) {
await reportFrom(e, st, this);
log(e.toString(), stackTrace: st);
emit(state.copyWith(errorMessage: e.toString(), isLoading: false));
}
@@ -93,7 +95,8 @@ class RecipesCubit extends Cubit<RecipesState> {
);
}
lastPage = currentPage;
} catch (e) {
} catch (e, st) {
await reportFrom(e, st, this);
emit(state.copyWith(errorMessage: e.toString(), isLoading: false));
}
}
@@ -132,7 +135,8 @@ class RecipesCubit extends Cubit<RecipesState> {
() async {
try {
await aboutRecipeRepository.addToFavorite(slug);
} catch (e) {
} catch (e, st) {
await reportFrom(e, st, this);
log(e.toString());
showErrorToast('Произошла ошибка. Попробуйте ещё раз через некоторое время');
emit(
@@ -172,7 +176,8 @@ class RecipesCubit extends Cubit<RecipesState> {
() async {
try {
await aboutRecipeRepository.removeFromFavorite(slug);
} catch (e) {
} catch (e, st) {
await reportFrom(e, st, this);
log(e.toString());
showErrorToast('Произошла ошибка. Попробуйте ещё раз через некоторое время');
emit(
@@ -228,7 +233,8 @@ class RecipesCubit extends Cubit<RecipesState> {
() async {
try {
await aboutRecipeRepository.likeRecipe(slug);
} catch (e) {
} catch (e, st) {
await reportFrom(e, st, this);
log(e.toString());
emit(
state.copyWith(
@@ -305,7 +311,8 @@ class RecipesCubit extends Cubit<RecipesState> {
try {
await aboutRecipeRepository.deleteRecipe(slug);
return true;
} catch (e) {
} catch (e, st) {
await reportFrom(e, st, this);
return false;
}
}