From ed74fd99f087142620b778a37a083cacb1613c8a Mon Sep 17 00:00:00 2001 From: mso7nueh Date: Fri, 12 Jul 2024 14:33:18 +0300 Subject: [PATCH] refactor(diary): fix service --- .../presentation/pages/diary_screen.dart | 58 +++++++++---------- .../diary/repositories/diary_repository.dart | 2 +- .../diary/services/diary_service.dart | 2 +- .../diary/services/diary_service.g.dart | 9 +-- lib/main.dart | 23 ++------ 5 files changed, 40 insertions(+), 54 deletions(-) diff --git a/lib/features/diary/presentation/pages/diary_screen.dart b/lib/features/diary/presentation/pages/diary_screen.dart index 7f46d092..be3a7b44 100644 --- a/lib/features/diary/presentation/pages/diary_screen.dart +++ b/lib/features/diary/presentation/pages/diary_screen.dart @@ -6,7 +6,6 @@ import 'package:eatvio_app/features/diary/models/photo.dart'; import 'package:eatvio_app/features/diary/models/portion.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/locator_service.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; @@ -26,38 +25,35 @@ import 'package:carousel_slider/carousel_slider.dart'; class DiaryScreen extends StatelessWidget { DiaryScreen({Key? key}) : super(key: key); Widget build(BuildContext context) { - return BlocProvider( - create: (context) => sl()..add(LoadDiary()), - child: BlocBuilder( - builder: (context, state) { - if (state is DiaryStateLoaded) { - return _buildDiary(context, state); - } else if (state is DiaryStateLoading) { - return Scaffold( - body: Center( - child: CupertinoActivityIndicator(), + return BlocBuilder( + builder: (context, state) { + if (state is DiaryStateLoaded) { + return _buildDiary(context, state); + } else if (state is DiaryStateLoading) { + return Scaffold( + body: Center( + child: CupertinoActivityIndicator(), + ), + ); + } else if (state is DiaryStateError) { + return Scaffold( + body: Padding( + padding: const EdgeInsets.all(16), + child: Center( + child: Text(state.errorMessage), ), - ); - } else if (state is DiaryStateError) { - return Scaffold( - body: Padding( - padding: const EdgeInsets.all(16), - child: Center( - child: Text(state.errorMessage), - ), + ), + ); + } else + return Scaffold( + body: Padding( + padding: const EdgeInsets.all(16), + child: Center( + child: Text("Неопределенная ошибка"), ), - ); - } else - return Scaffold( - body: Padding( - padding: const EdgeInsets.all(16), - child: Center( - child: Text("Неопределенная ошибка"), - ), - ), - ); - }, - ), + ), + ); + }, ); } diff --git a/lib/features/diary/repositories/diary_repository.dart b/lib/features/diary/repositories/diary_repository.dart index 2cadfd8d..25903f14 100644 --- a/lib/features/diary/repositories/diary_repository.dart +++ b/lib/features/diary/repositories/diary_repository.dart @@ -16,7 +16,7 @@ class DiaryRepository { Future getDiary(int diaryID) async { try { - return await diaryService.getDiary(diaryID); + return (await diaryService.getDiary(diaryID))['diary']!; } catch (e) { rethrow; } diff --git a/lib/features/diary/services/diary_service.dart b/lib/features/diary/services/diary_service.dart index 967c2af3..e047b5e6 100644 --- a/lib/features/diary/services/diary_service.dart +++ b/lib/features/diary/services/diary_service.dart @@ -13,7 +13,7 @@ abstract class DiaryService { Future> getDiaryID(); @GET('/diary/{id}/show/') - Future getDiary(@Path() int id); + Future> getDiary(@Path() int id); @GET('/diary/{id}/dailyNutritionData/') Future getChart(@Path() String id); diff --git a/lib/features/diary/services/diary_service.g.dart b/lib/features/diary/services/diary_service.g.dart index 62ca8f67..3ea7bd1b 100644 --- a/lib/features/diary/services/diary_service.g.dart +++ b/lib/features/diary/services/diary_service.g.dart @@ -46,13 +46,13 @@ class _DiaryService implements DiaryService { } @override - Future getDiary(int id) async { + Future> getDiary(int id) async { final _extra = {}; final queryParameters = {}; final _headers = {}; const Map? _data = null; - final _result = await _dio - .fetch>(_setStreamType(Options( + final _result = await _dio.fetch>( + _setStreamType>(Options( method: 'GET', headers: _headers, extra: _extra, @@ -68,7 +68,8 @@ class _DiaryService implements DiaryService { _dio.options.baseUrl, baseUrl, )))); - final _value = DiaryModel.fromJson(_result.data!); + var _value = _result.data!.map((k, dynamic v) => + MapEntry(k, DiaryModel.fromJson(v as Map))); return _value; } diff --git a/lib/main.dart b/lib/main.dart index bd7e66cc..f71b4a54 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -41,24 +41,13 @@ class MyApp extends StatelessWidget { Widget build(BuildContext context) { return MultiBlocProvider( providers: [ - BlocProvider( - create: (context) => InitializationCubit(chatRepository: sl())), - BlocProvider( - create: (context) => - ThemeBloc(ThemeState(themeType: PrefUtils().getThemeData()))), - BlocProvider( - create: (context) => sl()..loadFeedBlogPostList()), - BlocProvider( - create: (context) => MyProfileBloc( - MyProfileState(myProfileModelObj: MyProfileModel())) - ..add(MyProfileInitialEvent())), - BlocProvider( - create: (context) => sl()..add(LoadDiary()), - ), + BlocProvider(create: (context) => InitializationCubit(chatRepository: sl())), + BlocProvider(create: (context) => ThemeBloc(ThemeState(themeType: PrefUtils().getThemeData()))), + BlocProvider(create: (context) => sl()..loadFeedBlogPostList()), + BlocProvider(create: (context) => MyProfileBloc(MyProfileState(myProfileModelObj: MyProfileModel()))..add(MyProfileInitialEvent())), + BlocProvider(create: (context) => sl()..add(LoadDiary())), BlocProvider( - create: (context) => ChatSelectBloc( - ChatSelectState(chatSelectModelObj: ChatSelectModel())) - ..add(ChatSelectInitialEvent()), + create: (context) => ChatSelectBloc(ChatSelectState(chatSelectModelObj: ChatSelectModel()))..add(ChatSelectInitialEvent()), ), ], child: BlocListener(