forked from eatvio/eatvio_app
201 lines
3.9 KiB
Dart
201 lines
3.9 KiB
Dart
import 'dart:io';
|
|
|
|
import 'package:eatvio_app/features/diary/models/diary_model.dart';
|
|
import 'package:eatvio_app/features/diary/models/portion.dart';
|
|
import 'package:eatvio_app/features/diary/models/product.dart';
|
|
import 'package:eatvio_app/features/diary/services/diary_service.dart';
|
|
|
|
class DiaryRepository {
|
|
final DiaryService diaryService;
|
|
|
|
DiaryRepository({required this.diaryService});
|
|
|
|
Future<Map<String, int>> getDiaryID() async {
|
|
try {
|
|
return await diaryService.getDiaryID();
|
|
} catch (e) {
|
|
rethrow;
|
|
}
|
|
}
|
|
|
|
Future<DiaryModel> getDiary(int diaryID) async {
|
|
try {
|
|
return (await diaryService.getDiary(diaryID))['diary']!;
|
|
} catch (e) {
|
|
rethrow;
|
|
}
|
|
}
|
|
|
|
Future<Map<String, dynamic>> getChartData(int diaryID) async {
|
|
try {
|
|
return (await diaryService.getChart(diaryID));
|
|
} catch (e) {
|
|
rethrow;
|
|
}
|
|
}
|
|
|
|
Future<Map<String, List<Product>>> inputProduct(String name) async {
|
|
try {
|
|
return await diaryService.getInputProduct(name);
|
|
} catch (e) {
|
|
rethrow;
|
|
}
|
|
}
|
|
|
|
Future<void> changeSatiety(int satiety, int mealID, int diaryID) async {
|
|
try {
|
|
await diaryService.sendSatietyData(
|
|
diaryID,
|
|
mealID,
|
|
satiety,
|
|
);
|
|
} catch (e) {
|
|
rethrow;
|
|
}
|
|
}
|
|
|
|
Future<void> changeMood(int mood, int mealID, int diaryID) async {
|
|
try {
|
|
await diaryService.sendMoodData(
|
|
diaryID,
|
|
mealID,
|
|
mood,
|
|
);
|
|
} catch (e) {
|
|
rethrow;
|
|
}
|
|
}
|
|
|
|
Future<void> changeWakeup(
|
|
int diaryID,
|
|
String wakeup,
|
|
) async {
|
|
try {
|
|
await diaryService.sendWakeupData(
|
|
diaryID,
|
|
wakeup,
|
|
);
|
|
} catch (e) {
|
|
rethrow;
|
|
}
|
|
}
|
|
|
|
Future<void> changeRetire(
|
|
int diaryID,
|
|
String retire,
|
|
) async {
|
|
try {
|
|
await diaryService.sendWakeupData(
|
|
diaryID,
|
|
retire,
|
|
);
|
|
} catch (e) {
|
|
rethrow;
|
|
}
|
|
}
|
|
|
|
Future<Map<String, Portion>> addPortion(
|
|
int diaryID,
|
|
int mealID,
|
|
String name,
|
|
String product,
|
|
int quantity,
|
|
) async {
|
|
try {
|
|
return await diaryService.sendPortionData(
|
|
diaryID,
|
|
mealID,
|
|
name,
|
|
product,
|
|
quantity,
|
|
);
|
|
} catch (e) {
|
|
rethrow;
|
|
}
|
|
}
|
|
|
|
Future<Map<String, String>> sendModeration(
|
|
String name,
|
|
String energy_on_100gr,
|
|
String proteins_on_100gr,
|
|
String fats_on_100gr,
|
|
String carbohydrates_on_100gr,
|
|
) async {
|
|
try {
|
|
return await diaryService.sendModerationData(
|
|
name,
|
|
double.parse(energy_on_100gr + ".0"),
|
|
double.parse(proteins_on_100gr + ".0"),
|
|
double.parse(fats_on_100gr + ".0"),
|
|
double.parse(carbohydrates_on_100gr + ".0"),
|
|
);
|
|
} catch (e) {
|
|
rethrow;
|
|
}
|
|
}
|
|
|
|
Future<void> removePortion(
|
|
int diaryID,
|
|
int mealID,
|
|
int portionID,
|
|
) async {
|
|
try {
|
|
await diaryService.sendRemovePortionData(
|
|
diaryID,
|
|
mealID,
|
|
portionID,
|
|
);
|
|
} catch (e) {
|
|
rethrow;
|
|
}
|
|
}
|
|
|
|
Future<void> uploadImage(
|
|
String path,
|
|
int diaryID,
|
|
int mealID,
|
|
) async {
|
|
try {
|
|
File file = File(path);
|
|
await diaryService.uploadImage(
|
|
diaryID,
|
|
mealID,
|
|
file,
|
|
);
|
|
} catch (e) {
|
|
rethrow;
|
|
}
|
|
}
|
|
|
|
Future<void> removeImage(
|
|
int diaryID,
|
|
int mealID,
|
|
int photoID,
|
|
String path,
|
|
) async {
|
|
try {
|
|
await diaryService.sendRemovePhotoData(
|
|
diaryID,
|
|
mealID,
|
|
path,
|
|
photoID,
|
|
);
|
|
} catch (e) {
|
|
rethrow;
|
|
}
|
|
}
|
|
|
|
Future<void> finishDay(
|
|
int diaryID,
|
|
) async {
|
|
try {
|
|
/*final formatter = DateFormat('HH:mm');
|
|
final wakeupString = formatter.format(DateTime(2022, 1, 1, wakeup.hour, wakeup.minute));
|
|
final retireString = formatter.format(DateTime(2022, 1, 1, retire.hour, retire.minute));*/
|
|
await diaryService.sendFinishDay(diaryID);
|
|
} catch (e) {
|
|
rethrow;
|
|
}
|
|
}
|
|
}
|