fix(diary) Fix

This commit is contained in:
2024-03-29 14:30:23 +03:00
parent 7cd867806c
commit a712471d0c

View File

@@ -183,6 +183,7 @@ class DiaryEditBloc extends Bloc<DiaryEditEvent, DiaryEditState> {
final diary = jsonDecode(diaryResponse.body)['diary'];
if (diary is Map<String, dynamic>) {
print(diary);
final String diaryDate = diary['date'] ?? DateTime.now().toString();
// Продолжайте обработку данных дневника
// Если текущее состояние - начальное, создаем новое загруженное состояние
@@ -325,21 +326,35 @@ class DiaryEditBloc extends Bloc<DiaryEditEvent, DiaryEditState> {
WakeupEvent event, Emitter<DiaryEditState> 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<void> _changeRetire(
RetireEvent event, Emitter<DiaryEditState> 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<http.Response> sendWakeupData(
String? token,
TimeOfDay wakeup,
@@ -364,24 +379,6 @@ class DiaryEditBloc extends Bloc<DiaryEditEvent, DiaryEditState> {
return response;
}
FutureOr<void> _changeRetire(
RetireEvent event, Emitter<DiaryEditState> 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<http.Response> 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<DiaryEditEvent, DiaryEditState> {
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}}');
}
}