Files
eatvio_app/lib/features/diary/services/diary_service.dart
2024-11-22 15:27:51 +03:00

86 lines
2.7 KiB
Dart

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/nutrition_model.dart';
import 'package:retrofit/retrofit.dart';
part 'diary_service.g.dart';
@RestApi()
abstract class DiaryService {
factory DiaryService(Dio dio, {String baseUrl}) = _DiaryService;
@GET('/api/diary/index/{date}')
Future<List<DiaryDayModel>> getDiaryIndexByDate({
@Path('date') required String date, // yyyy-mm-dd
});
@GET('/api/diary/{diary_id}/show')
Future<DiaryDayWrapperModel> getDiaryDay({
@Path('diary_id') required int index,
});
@GET('/api/diary/{diary_id}/dailyNutritionData')
Future<NutritionDataModel> getNutrition({
@Path('diary_id') required int index,
});
@POST('/api/diary/{diary_id}/meal/{meal_id}/photo/upload')
@MultiPart()
Future<void> uploadPhotoOfMeal({
@Path('diary_id') required int diaryId,
@Path('meal_id') required int mealId,
@Part(name: 'photo') required File photo,
});
@DELETE('/api/diary/{diary_id}/meal/{meal_id}/photo/delete')
Future<void> deletePhotoOfMeal({
@Path('diary_id') required int diaryId,
@Path('meal_id') required int mealId,
@Query('id') required int id,
@Query('path') required String path,
});
@POST('/api/diary/{diary_id}/meal/{meal_id}/portions/create')
Future<void> addProductToMeal({
@Path('diary_id') required int diaryId,
@Path('meal_id') required int mealId,
@Part(name: 'product_name') required String productName,
@Part(name: 'portion') required String portion,
@Part(name: 'quantity') required int quantity,
});
@PUT('/api/diary/{diary_id}/meal/{meal_id}/portions/{portion_id}/update')
Future<void> updateProductInMeal({
@Path('diary_id') required int diaryId,
@Path('meal_id') required int mealId,
@Path('portion_id') required int portionId,
@Body() required ProductInMeal productInMeal,
});
@DELETE('/api/diary/{diary_id}/meal/{meal_id}/portions/{portion_id}/delete')
Future<void> deleteProductFromMeal({
@Path('diary_id') required int diaryId,
@Path('meal_id') required int mealId,
@Path('portion_id') required int portionId,
});
@POST('/api/diary/{diary_id}/finishDay')
Future<void> finishDiaryDay({
@Path('diary_id') required int diaryId,
// @Body() required FinishDiaryDayModel finishDiaryDayModel,
});
@POST('/api/diary/{diary_id}/meal/{meal}/satiety/fill')
Future<void> fillSatiety({
@Path('diary_id') required int diaryId,
@Path('meal') required int meal,
@Field() required int satiety,
});
@POST('/api/diary/product_nutritional_values/sendToModeration')
Future<void> sendProductToModeration({
@Body() required Map<String, dynamic> data,
});
}