refactor(diary): fix service

This commit is contained in:
mso7nueh
2024-07-12 14:33:18 +03:00
parent 551debd450
commit ed74fd99f0
5 changed files with 40 additions and 54 deletions

View File

@@ -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<DiaryBloc>(
create: (context) => sl<DiaryBloc>()..add(LoadDiary()),
child: BlocBuilder<DiaryBloc, DiaryState>(
builder: (context, state) {
if (state is DiaryStateLoaded) {
return _buildDiary(context, state);
} else if (state is DiaryStateLoading) {
return Scaffold(
body: Center(
child: CupertinoActivityIndicator(),
return BlocBuilder<DiaryBloc, DiaryState>(
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("Неопределенная ошибка"),
),
),
);
},
),
),
);
},
);
}

View File

@@ -16,7 +16,7 @@ class DiaryRepository {
Future<DiaryModel> getDiary(int diaryID) async {
try {
return await diaryService.getDiary(diaryID);
return (await diaryService.getDiary(diaryID))['diary']!;
} catch (e) {
rethrow;
}

View File

@@ -13,7 +13,7 @@ abstract class DiaryService {
Future<Map<String, int>> getDiaryID();
@GET('/diary/{id}/show/')
Future<DiaryModel> getDiary(@Path() int id);
Future<Map<String, DiaryModel>> getDiary(@Path() int id);
@GET('/diary/{id}/dailyNutritionData/')
Future<DiaryModel> getChart(@Path() String id);

View File

@@ -46,13 +46,13 @@ class _DiaryService implements DiaryService {
}
@override
Future<DiaryModel> getDiary(int id) async {
Future<Map<String, DiaryModel>> getDiary(int id) async {
final _extra = <String, dynamic>{};
final queryParameters = <String, dynamic>{};
final _headers = <String, dynamic>{};
const Map<String, dynamic>? _data = null;
final _result = await _dio
.fetch<Map<String, dynamic>>(_setStreamType<DiaryModel>(Options(
final _result = await _dio.fetch<Map<String, dynamic>>(
_setStreamType<Map<String, DiaryModel>>(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<String, dynamic>)));
return _value;
}