Merge remote-tracking branch 'upstream/main'

This commit is contained in:
misha
2026-02-10 12:38:08 +03:00
88 changed files with 1161 additions and 610 deletions

View File

@@ -1,7 +1,6 @@
import 'dart:convert';
import 'dart:io';
import 'dart:developer';
import 'package:dio/dio.dart';
import 'package:eatvio_app/core/app_config.dart';
import 'package:eatvio_app/core/app_initializer.dart';
import 'package:eatvio_app/core/const.dart';
@@ -16,6 +15,7 @@ import 'package:eatvio_app/features/profile/repositories/profile_repository.dart
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_image_compress/flutter_image_compress.dart';
import 'package:http/http.dart' as http;
import 'package:sentry_flutter/sentry_flutter.dart';
import 'package:path_provider/path_provider.dart';
class CreateDietCubit extends Cubit<CreateDietState> {
@@ -347,10 +347,11 @@ class CreateDietCubit extends Cubit<CreateDietState> {
emit(state.copyWith(published: dietState != DietState.draft, drafted: dietState == DietState.draft));
return null;
} on DioException catch (e, stackTrace) {
log(e.toString(), stackTrace: stackTrace);
} catch (e, st) {
await Sentry.captureException(e, stackTrace: st);
log(e.toString(), stackTrace: st);
emit(state.copyWith(isDietPublishing: false));
}
emit(state.copyWith(isDietPublishing: false));
return 'error';
}
@@ -381,6 +382,7 @@ class CreateDietCubit extends Cubit<CreateDietState> {
);
return null;
} catch (e, st) {
await Sentry.captureException(e, stackTrace: st);
log(e.toString(), stackTrace: st);
return 'error';
}

View File

@@ -2,6 +2,7 @@ import 'dart:io';
import 'package:dio/dio.dart';
import 'package:eatvio_app/features/create_diet/services/create_diet_service.dart';
import 'package:eatvio_app/features/feed/models/diets_pagination_model.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
class CreateDietRepository {
final CreateDietService createDietService;
@@ -18,7 +19,7 @@ class CreateDietRepository {
required String? details,
required File? image,
required List<List<List<DailySchedule>>>? dailySchedule,
}) {
}) async {
final dietMap = <String, dynamic>{};
if (dailySchedule != null) {
for (final (dayIndex, day) in dailySchedule.indexed) {
@@ -61,13 +62,18 @@ class CreateDietRepository {
dietMap.addAll({'name': name, 'duration': duration});
final formData = FormData.fromMap(dietMap);
switch (state) {
case DietState.active:
return createDietService.createPublishedDiet(formData: formData);
case DietState.draft:
return createDietService.createDraftedDiet(formData: formData);
case DietState.personal:
return createDietService.createPersonalDiet(formData: formData);
try {
switch (state) {
case DietState.active:
return await createDietService.createPublishedDiet(formData: formData);
case DietState.draft:
return await createDietService.createDraftedDiet(formData: formData);
case DietState.personal:
return await createDietService.createPersonalDiet(formData: formData);
}
} catch (e, s) {
await Sentry.captureException(e, stackTrace: s);
rethrow;
}
}
@@ -94,7 +100,8 @@ class CreateDietRepository {
);
});
return dailySchedule;
} catch (e) {
} catch (e, s) {
await Sentry.captureException(e, stackTrace: s);
rethrow;
}
}
@@ -111,7 +118,7 @@ class CreateDietRepository {
String? details,
File? image,
List<List<List<DailySchedule>>>? dailySchedule,
}) {
}) async {
final dietMap = <String, dynamic>{};
if (dailySchedule != null) {
for (final (dayIndex, day) in dailySchedule.indexed) {
@@ -154,13 +161,18 @@ class CreateDietRepository {
}
final formData = FormData.fromMap(dietMap);
switch (state) {
case DietState.active:
return createDietService.updatePublished(diet: dietId, formData: formData);
case DietState.draft:
return createDietService.updateDrafted(diet: dietId, formData: formData);
case DietState.personal:
return createDietService.updatePersonal(diet: dietId, formData: formData);
try {
switch (state) {
case DietState.active:
return await createDietService.updatePublished(diet: dietId, formData: formData);
case DietState.draft:
return await createDietService.updateDrafted(diet: dietId, formData: formData);
case DietState.personal:
return await createDietService.updatePersonal(diet: dietId, formData: formData);
}
} catch (e, s) {
await Sentry.captureException(e, stackTrace: s);
rethrow;
}
}
}