fix: diary + cache

This commit is contained in:
mso7nueh
2024-11-18 15:05:34 +03:00
parent 0cf9110247
commit 4a8ff3085d
5 changed files with 46 additions and 33 deletions

View File

@@ -25,7 +25,7 @@ class DiaryCubit extends Cubit<DiaryState> {
emit(
DiaryState.loaded(
diary: await diaryRepository.getDiaryByDate(date),
nutrition: await getNutrition(await diaryRepository.getDiaryIndexByDate(date)),
nutrition: await getNutrition((await diaryRepository.getDiaryByDate(date)).id),
currentSelectedSatietyRating: currentSelectedSatietyRating,
),
);

View File

@@ -11,14 +11,11 @@ class DiaryRepository {
});
Future<DiaryDayModel> getDiaryByDate(String date) async {
return (await diaryService.getDiaryDay(
index: await getDiaryIndexByDate(date),
))
.diary;
return (await getDiaryIndexByDate(date)).last;
}
Future<int> getDiaryIndexByDate(String date) async {
return (await diaryService.getDiaryIndexByDate(date: date)).id;
Future<List<DiaryDayModel>> getDiaryIndexByDate(String date) async {
return (await diaryService.getDiaryIndexByDate(date: date));
}
Future<NutritionDataModel> getNutritionData(int index) async {

View File

@@ -1,7 +1,6 @@
import 'dart:io';
import 'package:dio/dio.dart';
import 'package:eatvio_app/features/diary/models/diary_day_model.dart';
import 'package:eatvio_app/features/diary/models/diary_index_model.dart';
import 'package:eatvio_app/features/diary/models/nutrition_model.dart';
import 'package:retrofit/retrofit.dart';
@@ -12,7 +11,7 @@ abstract class DiaryService {
factory DiaryService(Dio dio, {String baseUrl}) = _DiaryService;
@GET('/api/diary/index/{date}')
Future<DiaryIndexModel> getDiaryIndexByDate({
Future<List<DiaryDayModel>> getDiaryIndexByDate({
@Path('date') required String date, // yyyy-mm-dd
});

View File

@@ -22,12 +22,13 @@ class _DiaryService implements DiaryService {
final ParseErrorLogger? errorLogger;
@override
Future<DiaryIndexModel> getDiaryIndexByDate({required String date}) async {
Future<List<DiaryDayModel>> getDiaryIndexByDate(
{required String date}) async {
final _extra = <String, dynamic>{};
final queryParameters = <String, dynamic>{};
final _headers = <String, dynamic>{};
const Map<String, dynamic>? _data = null;
final _options = _setStreamType<DiaryIndexModel>(Options(
final _options = _setStreamType<List<DiaryDayModel>>(Options(
method: 'GET',
headers: _headers,
extra: _extra,
@@ -43,10 +44,12 @@ class _DiaryService implements DiaryService {
_dio.options.baseUrl,
baseUrl,
)));
final _result = await _dio.fetch<Map<String, dynamic>>(_options);
late DiaryIndexModel _value;
final _result = await _dio.fetch<List<dynamic>>(_options);
late List<DiaryDayModel> _value;
try {
_value = DiaryIndexModel.fromJson(_result.data!);
_value = _result.data!
.map((dynamic i) => DiaryDayModel.fromJson(i as Map<String, dynamic>))
.toList();
} on Object catch (e, s) {
errorLogger?.logError(e, s, _options);
rethrow;