diff --git a/lib/features/diary/presentation/bloc/diary_bloc.dart b/lib/features/diary/presentation/bloc/diary_bloc.dart index 4691b34..8cebe1a 100644 --- a/lib/features/diary/presentation/bloc/diary_bloc.dart +++ b/lib/features/diary/presentation/bloc/diary_bloc.dart @@ -159,45 +159,20 @@ class DiaryBloc extends Bloc { } } - Future sendMoodData( - int selectedMood, - int? mealID, - int diaryID, - ) async { - String url = dotenv.env['SERVER_ROOT']! + '/diary/$diaryID/meal/$mealID/mood/fill'; - final Map credentials = { - 'mood': selectedMood, - }; - - var response = await http.post( - Uri.parse(url), - headers: { - 'Content-Type': 'application/json', - }, - body: json.encode(credentials), - encoding: utf8, - ); - - return response; - } - FutureOr _changeWakeup( WakeupEvent event, Emitter emit, ) async { if (state is DiaryStateLoaded) { var currentState = state as DiaryStateLoaded; - var response = await sendWakeupData( - event.selectedTime, + var updatedState = currentState.copyWith(wakeupController: event.selectedTime); + final DateFormat formatter = DateFormat('HH:mm'); + final String wakeupString = formatter.format(DateTime(2022, 1, 1, event.selectedTime.hour, event.selectedTime.minute)); + await diaryRepository.changeWakeup( currentState.diary.id, + wakeupString, ); - if (response.statusCode == 200) { - await reloadScreen(event, emit); - var updatedState = currentState.copyWith(wakeupController: event.selectedTime); - print("Wakeup time changed to ${event.selectedTime}"); - emit(updatedState); // Передаем обновленное состояние в emit - } else - print("Wakeup time change error"); + emit(updatedState); } } @@ -207,66 +182,17 @@ class DiaryBloc extends Bloc { ) async { if (state is DiaryStateLoaded) { var currentState = state as DiaryStateLoaded; - var response = await sendRetireData( - event.selectedTime, + var updatedState = currentState.copyWith(retireController: event.selectedTime); + final DateFormat formatter = DateFormat('HH:mm'); + final String retireString = formatter.format(DateTime(2022, 1, 1, event.selectedTime.hour, event.selectedTime.minute)); + await diaryRepository.changeRetire( currentState.diary.id, + retireString, ); - if (response.statusCode == 200) { - await reloadScreen(event, emit); - var updatedState = currentState.copyWith(retireController: event.selectedTime); - print("Retire time changed to ${event.selectedTime}"); - emit(updatedState); // Передаем обновленное состояние в emit - } else - print("Retire time change error"); + emit(updatedState); } } - Future sendWakeupData( - TimeOfDay wakeup, - int diaryID, - ) async { - String url = dotenv.env['SERVER_ROOT']! + '/diary/$diaryID/wakeUp/fill'; - final formatter = DateFormat('HH:mm'); - final wakeupString = formatter.format(DateTime(2022, 1, 1, wakeup.hour, wakeup.minute)); - final Map credentials = { - 'wakeUp': wakeupString, - }; - - var response = await http.post( - Uri.parse(url), - headers: { - 'Content-Type': 'application/json', - }, - body: json.encode(credentials), - encoding: utf8, - ); - - return response; - } - - Future sendRetireData( - TimeOfDay retire, - int diaryID, - ) async { - String url = dotenv.env['SERVER_ROOT']! + '/diary/$diaryID/retire/fill'; - final formatter = DateFormat('HH:mm'); - final retireString = formatter.format(DateTime(2022, 1, 1, retire.hour, retire.minute)); - final Map credentials = { - 'retire': retireString, - }; - - var response = await http.post( - Uri.parse(url), - headers: { - 'Content-Type': 'application/json', - }, - body: json.encode(credentials), - encoding: utf8, - ); - - return response; - } - FutureOr _changeMealTime( ChangeMealTime event, Emitter emit, @@ -274,53 +200,27 @@ class DiaryBloc extends Bloc { if (state is DiaryStateLoaded) { var currentState = state as DiaryStateLoaded; var updatedState = currentState.copyWith(mealTimeController: event.time); - emit(updatedState); } } - Future sendMealTimeData( - String? token, - TimeOfDay mealTime, - int? mealID, - int diaryID, - ) async { - String url = dotenv.env['SERVER_ROOT']! + '/diary/???'; - final Map credentials = { - 'time': mealTime, - 'meal_id': mealID, - 'diary_id': diaryID, - }; - - var response = await http.post( - Uri.parse(url), - headers: { - 'Content-Type': 'application/json', - 'Authorization': 'Bearer $token', - }, - body: json.encode(credentials), - encoding: utf8, - ); - - return response; - } - FutureOr _changeMeal( ChangeMeal event, Emitter emit, ) async { if (state is DiaryStateLoaded) { var currentState = state as DiaryStateLoaded; - Meal? meal = currentState.diary.meals.firstWhere((meal) => meal.id == event.value); + Meal? meal = currentState.diary.meals.firstWhere((meal) => meal.id == event.value.id); DiaryStateLoaded updatedState = currentState.copyWith( - currentMeal: event.value, + currentMeal: meal, portions: meal.portions, photos: meal.photos, mealTimeController: toTime(meal.time), selectedMood: meal.mood, selectedSatiety: meal.satiety, ); + print(updatedState.currentMeal.id); emit(updatedState); } } diff --git a/lib/features/diary/presentation/bloc/diary_event.dart b/lib/features/diary/presentation/bloc/diary_event.dart index 91445ff..eb4742e 100644 --- a/lib/features/diary/presentation/bloc/diary_event.dart +++ b/lib/features/diary/presentation/bloc/diary_event.dart @@ -158,6 +158,5 @@ class SendModeration extends DiaryEvent { String fatsOn100gr; String carbohydratesOn100gr; @override - List get props => - [name, energyOn100gr, proteinsOn100gr, fatsOn100gr, carbohydratesOn100gr]; + List get props => [name, energyOn100gr, proteinsOn100gr, fatsOn100gr, carbohydratesOn100gr]; } diff --git a/lib/features/diary/repositories/diary_repository.dart b/lib/features/diary/repositories/diary_repository.dart index c915d60..68511c7 100644 --- a/lib/features/diary/repositories/diary_repository.dart +++ b/lib/features/diary/repositories/diary_repository.dart @@ -1,10 +1,5 @@ -import 'package:eatvio_app/core/app_export.dart'; import 'package:eatvio_app/features/diary/models/diary_model.dart'; -import 'package:eatvio_app/features/diary/models/meal.dart'; -import 'package:eatvio_app/features/diary/presentation/bloc/diary_bloc.dart'; -import 'package:eatvio_app/features/diary/presentation/bloc/diary_state.dart'; import 'package:eatvio_app/features/diary/services/diary_service.dart'; -import 'package:flutter/widgets.dart'; class DiaryRepository { final DiaryService diaryService; @@ -50,4 +45,32 @@ class DiaryRepository { rethrow; } } + + Future changeWakeup( + int diaryID, + String wakeup, + ) async { + try { + await diaryService.sendWakeupData( + diaryID, + wakeup, + ); + } catch (e) { + rethrow; + } + } + + Future changeRetire( + int diaryID, + String retire, + ) async { + try { + await diaryService.sendWakeupData( + diaryID, + retire, + ); + } catch (e) { + rethrow; + } + } } diff --git a/lib/features/diary/services/diary_service.dart b/lib/features/diary/services/diary_service.dart index ad02539..b412594 100644 --- a/lib/features/diary/services/diary_service.dart +++ b/lib/features/diary/services/diary_service.dart @@ -1,6 +1,5 @@ import 'package:dio/dio.dart'; import 'package:eatvio_app/features/diary/models/diary_model.dart'; -import 'package:flutter/material.dart'; import 'package:retrofit/retrofit.dart'; part 'diary_service.g.dart'; @@ -32,17 +31,15 @@ abstract class DiaryService { @Query('mood') int mood, ); - @POST('/diary/{diaryID}/wakeup/fill') - Future sendWakeup( - @Path() String diaryID, - String mealID, - TimeOfDay wakeup, + @POST('/diary/{diary_id}/wakeup/fill') + Future sendWakeupData( + @Path() int diary_id, + @Query('wakeup') String wakeup, ); - @POST('/diary/{diaryID}/retire/fill') + @POST('/diary/{diary_id}/retire/fill') Future sendRetire( - @Path() String diaryID, - String mealID, - TimeOfDay retire, + @Path() int diary_id, + @Query('retire') String retire, ); } diff --git a/lib/features/diary/services/diary_service.g.dart b/lib/features/diary/services/diary_service.g.dart index ddbf219..a33a19e 100644 --- a/lib/features/diary/services/diary_service.g.dart +++ b/lib/features/diary/services/diary_service.g.dart @@ -163,13 +163,12 @@ class _DiaryService implements DiaryService { } @override - Future sendWakeup( - String diaryID, - String mealID, - TimeOfDay wakeup, + Future sendWakeupData( + int diary_id, + String wakeup, ) async { final _extra = {}; - final queryParameters = {}; + final queryParameters = {r'wakeup': wakeup}; final _headers = {}; const Map? _data = null; final _result = await _dio @@ -180,7 +179,7 @@ class _DiaryService implements DiaryService { ) .compose( _dio.options, - '/diary/${diaryID}/wakeup/fill', + '/diary/${diary_id}/wakeup/fill', queryParameters: queryParameters, data: _data, ) @@ -195,12 +194,11 @@ class _DiaryService implements DiaryService { @override Future sendRetire( - String diaryID, - String mealID, - TimeOfDay retire, + int diary_id, + String retire, ) async { final _extra = {}; - final queryParameters = {}; + final queryParameters = {r'retire': retire}; final _headers = {}; const Map? _data = null; final _result = await _dio @@ -211,7 +209,7 @@ class _DiaryService implements DiaryService { ) .compose( _dio.options, - '/diary/${diaryID}/retire/fill', + '/diary/${diary_id}/retire/fill', queryParameters: queryParameters, data: _data, )