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];
}