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

@@ -3,35 +3,53 @@ name: Eatvio App Android Test
on: [ pull_request ]
env:
flutter_version: "3.24.4"
flutter_version: "3.24.5"
java_version: "21.x"
flutter_channel: "stable"
jobs:
build:
runs-on: [dev-office]
runs-on: [ dev-office ]
env:
key: "cache-v1"
steps:
- uses: actions/checkout@v3
- name: Setup cache environment
id: extcache
uses: https://github.com/shivammathur/cache-extensions@v1
with:
key: ${{ env.key }}
- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: "zulu"
java-version: ${{ env.java_version }}
id: setup-jdk
- name: Manage Android SDK cache
uses: actions/cache@v3
with:
path: |
$HOME/Android/Sdk/cmdline-tools/latest/
$HOME/Android/Sdk
$HOME/Android/Sdk/cmdline-tools/latest/bin
key: ${{ steps.extcache.outputs.key }}
- name: Install Android SDK
run: |
apt-get update
apt-get install -y openjdk-11-jdk wget
wget https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip -O commandlinetools.zip
unzip commandlinetools.zip
mkdir -p $HOME/Android/Sdk/cmdline-tools/latest
mv cmdline-tools/* $HOME/Android/Sdk/cmdline-tools/latest/
export ANDROID_SDK_ROOT=$HOME/Android/Sdk
export PATH=$PATH:$HOME/Android/Sdk/cmdline-tools/latest/bin
yes | sdkmanager --licenses 2>/dev/null || true
apt-get update
apt-get install -y openjdk-11-jdk wget
wget https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip -O commandlinetools.zip
unzip commandlinetools.zip
mkdir -p $HOME/Android/Sdk/cmdline-tools/latest
mv cmdline-tools/* $HOME/Android/Sdk/cmdline-tools/latest/
export ANDROID_SDK_ROOT=$HOME/Android/Sdk
export PATH=$PATH:$HOME/Android/Sdk/cmdline-tools/latest/bin
yes | sdkmanager --licenses 2>/dev/null || true
- name: Set up Android environment variables
run: |
@@ -39,10 +57,8 @@ jobs:
echo "PATH=$PATH:$HOME/Android/Sdk/cmdline-tools/latest/bin:$HOME/Android/Sdk/platform-tools:$HOME/Android/Sdk/build-tools/30.0.3" >> $GITHUB_ENV
echo "ANDROID_HOME=$HOME/Android/Sdk" >> $GITHUB_ENV
- name: Install jq
run: |
apt-get install -y jq
run: apt-get install -y jq
- id: flutter-action
uses: actions/flutter-action@v2
@@ -64,12 +80,10 @@ jobs:
run: flutter analyze
- name: Test
run: |
flutter test
run: flutter test
- name: Build apk
run: |
flutter build apk
run: flutter build apk
- name: Rename and move apk
run: |

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;