From a712471d0c08e73c3df3fb6061af1eab5b76130b Mon Sep 17 00:00:00 2001 From: maxxkim Date: Fri, 29 Mar 2024 14:30:23 +0300 Subject: [PATCH] fix(diary) Fix --- .../bloc/diary_edit_bloc.dart | 60 +++++++++---------- 1 file changed, 29 insertions(+), 31 deletions(-) diff --git a/lib/presentation/diary/diary_edit_screen/bloc/diary_edit_bloc.dart b/lib/presentation/diary/diary_edit_screen/bloc/diary_edit_bloc.dart index a5c3cdb7..78b5592e 100644 --- a/lib/presentation/diary/diary_edit_screen/bloc/diary_edit_bloc.dart +++ b/lib/presentation/diary/diary_edit_screen/bloc/diary_edit_bloc.dart @@ -183,6 +183,7 @@ class DiaryEditBloc extends Bloc { final diary = jsonDecode(diaryResponse.body)['diary']; if (diary is Map) { + print(diary); final String diaryDate = diary['date'] ?? DateTime.now().toString(); // Продолжайте обработку данных дневника // Если текущее состояние - начальное, создаем новое загруженное состояние @@ -325,21 +326,35 @@ class DiaryEditBloc extends Bloc { WakeupEvent event, Emitter emit) async { if (state is DiaryEditLoadedState) { var currentState = state as DiaryEditLoadedState; - var updatedState = //инициализируем новое состояние - currentState.copyWith(wakeupController: event.selectedTime); - - // Отправляем данные по HTTP маршруту и ждем ответ var response = await sendWakeupData( currentState.token, event.selectedTime, currentState.diaryId); - if (response.statusCode == 200) { - //Чекаем статус ответа - updatedState.wakeupController = event.selectedTime; + var updatedState = + currentState.copyWith(wakeupController: event.selectedTime); + print("Wakeup time changed to ${event.selectedTime}"); emit(updatedState); // Передаем обновленное состояние в emit + } else { + print("Wakeup time change error"); } } } + FutureOr _changeRetire( + RetireEvent event, Emitter emit) async { + if (state is DiaryEditLoadedState) { + var currentState = state as DiaryEditLoadedState; + var response = await sendRetireData( + currentState.token, event.selectedTime, currentState.diaryId); + if (response.statusCode == 200) { + var updatedState = + currentState.copyWith(retireController: event.selectedTime); + print("Retire time changed to ${event.selectedTime}"); + emit(updatedState); // Передаем обновленное состояние в emit + } else + print("Retire time change error"); + } + } + Future sendWakeupData( String? token, TimeOfDay wakeup, @@ -364,24 +379,6 @@ class DiaryEditBloc extends Bloc { return response; } - FutureOr _changeRetire( - RetireEvent event, Emitter emit) async { - if (state is DiaryEditLoadedState) { - var currentState = state as DiaryEditLoadedState; - var updatedState = - currentState.copyWith(retireController: event.selectedTime); - - // Отправляем данные по HTTP маршруту и ждем ответ - var response = await sendRetireData( - currentState.token, event.selectedTime, currentState.diaryId); - - if (response.statusCode == 200) { - updatedState.retireController = event.selectedTime; - emit(updatedState); // Передаем обновленное состояние в emit - } - } - } - Future sendRetireData( String? token, TimeOfDay retire, int diaryID) async { String url = dotenv.env['SERVER_ROOT']! + '/diary/$diaryID/retire/fill'; @@ -672,21 +669,22 @@ class DiaryEditBloc extends Bloc { String imagePath, int diaryID, int mealId, String? token) async { String url = '${dotenv.env['SERVER_ROOT']!}/diary/$diaryID/meal/$mealId/photo/upload'; - // 'https://eo6yh2uv84lm3p0.m.pipedream.net'; // Remove this line and uncomment the above line for actual server URL var request = http.MultipartRequest('POST', Uri.parse(url)); request.headers['Authorization'] = 'Bearer $token'; - request.headers['Content-Type'] = 'multipart/form-data'; request.files.add(await http.MultipartFile.fromPath('image', imagePath)); - var response = await request.send(); - if (response.statusCode == 200) { - var imageUrl = await response.stream.bytesToString(); + var client = http.Client(); + var streamedResponse = await client.send(request); + + if (streamedResponse.statusCode == 200) { + var response = await http.Response.fromStream(streamedResponse); + var imageUrl = response.body; return imageUrl; } else { throw Exception( - 'Failed to upload image. Status code: ${response.statusCode}}'); + 'Failed to upload image. Status code: ${streamedResponse.statusCode}}'); } }