fix(diary): Wakeup and retire time API method call fix

This commit is contained in:
2024-07-15 15:37:18 +03:00
parent b8227a492d
commit 76c1effe12
5 changed files with 60 additions and 143 deletions

View File

@@ -159,45 +159,20 @@ class DiaryBloc extends Bloc<DiaryEvent, DiaryState> {
}
}
Future<http.Response> sendMoodData(
int selectedMood,
int? mealID,
int diaryID,
) async {
String url = dotenv.env['SERVER_ROOT']! + '/diary/$diaryID/meal/$mealID/mood/fill';
final Map<String, dynamic> 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<void> _changeWakeup(
WakeupEvent event,
Emitter<DiaryState> 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<DiaryEvent, DiaryState> {
) 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<http.Response> 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<String, dynamic> 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<http.Response> 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<String, dynamic> 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<void> _changeMealTime(
ChangeMealTime event,
Emitter<DiaryState> emit,
@@ -274,53 +200,27 @@ class DiaryBloc extends Bloc<DiaryEvent, DiaryState> {
if (state is DiaryStateLoaded) {
var currentState = state as DiaryStateLoaded;
var updatedState = currentState.copyWith(mealTimeController: event.time);
emit(updatedState);
}
}
Future<http.Response> sendMealTimeData(
String? token,
TimeOfDay mealTime,
int? mealID,
int diaryID,
) async {
String url = dotenv.env['SERVER_ROOT']! + '/diary/???';
final Map<String, dynamic> 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<void> _changeMeal(
ChangeMeal event,
Emitter<DiaryState> 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);
}
}

View File

@@ -158,6 +158,5 @@ class SendModeration extends DiaryEvent {
String fatsOn100gr;
String carbohydratesOn100gr;
@override
List<Object?> get props =>
[name, energyOn100gr, proteinsOn100gr, fatsOn100gr, carbohydratesOn100gr];
List<Object?> get props => [name, energyOn100gr, proteinsOn100gr, fatsOn100gr, carbohydratesOn100gr];
}

View File

@@ -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<void> changeWakeup(
int diaryID,
String wakeup,
) async {
try {
await diaryService.sendWakeupData(
diaryID,
wakeup,
);
} catch (e) {
rethrow;
}
}
Future<void> changeRetire(
int diaryID,
String retire,
) async {
try {
await diaryService.sendWakeupData(
diaryID,
retire,
);
} catch (e) {
rethrow;
}
}
}

View File

@@ -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<DiaryModel> sendWakeup(
@Path() String diaryID,
String mealID,
TimeOfDay wakeup,
@POST('/diary/{diary_id}/wakeup/fill')
Future<DiaryModel> sendWakeupData(
@Path() int diary_id,
@Query('wakeup') String wakeup,
);
@POST('/diary/{diaryID}/retire/fill')
@POST('/diary/{diary_id}/retire/fill')
Future<DiaryModel> sendRetire(
@Path() String diaryID,
String mealID,
TimeOfDay retire,
@Path() int diary_id,
@Query('retire') String retire,
);
}

View File

@@ -163,13 +163,12 @@ class _DiaryService implements DiaryService {
}
@override
Future<DiaryModel> sendWakeup(
String diaryID,
String mealID,
TimeOfDay wakeup,
Future<DiaryModel> sendWakeupData(
int diary_id,
String wakeup,
) async {
final _extra = <String, dynamic>{};
final queryParameters = <String, dynamic>{};
final queryParameters = <String, dynamic>{r'wakeup': wakeup};
final _headers = <String, dynamic>{};
const Map<String, dynamic>? _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<DiaryModel> sendRetire(
String diaryID,
String mealID,
TimeOfDay retire,
int diary_id,
String retire,
) async {
final _extra = <String, dynamic>{};
final queryParameters = <String, dynamic>{};
final queryParameters = <String, dynamic>{r'retire': retire};
final _headers = <String, dynamic>{};
const Map<String, dynamic>? _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,
)