forked from eatvio/eatvio_app
112 lines
5.2 KiB
Dart
112 lines
5.2 KiB
Dart
import 'dart:io';
|
|
import 'package:dio/dio.dart';
|
|
import 'package:eatvio_app/features/diary/models/consultant_comment_model.dart';
|
|
import 'package:eatvio_app/features/diary/models/consultant_review_model.dart';
|
|
import 'package:eatvio_app/features/diary/models/create_day_model.dart';
|
|
import 'package:eatvio_app/features/diary/models/diary_day_model.dart';
|
|
import 'package:eatvio_app/features/diary/models/finish_diary_day_model.dart';
|
|
import 'package:eatvio_app/features/diary/models/nutrition_model.dart';
|
|
import 'package:eatvio_app/features/glossary/models/glossary_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});
|
|
|
|
|
|
@GET('/api/diary/{diary}/show')
|
|
Future<DiaryDayWrapperModel> getDiaryDay({@Path('diary') required int diary});
|
|
|
|
@GET('/api/diary/{diary}/dailyNutritionData')
|
|
Future<NutritionDataModel> getNutrition({@Path('diary') required int diary});
|
|
|
|
@POST('/api/diary/{diary}/meals/{type_no}/photo/upload')
|
|
@MultiPart()
|
|
Future<void> uploadPhotoOfMeal({@Path('diary') required int diary, @Path('type_no') required int typeNo, @Part(name: 'photo') required File photo});
|
|
|
|
@DELETE('/api/diary/{diary}/meals/{type_no}/photo/{user_attachment}/delete')
|
|
Future<void> deletePhotoOfMeal({
|
|
@Path('diary') required int diaryId,
|
|
@Path('type_no') required int typeNo,
|
|
@Path('user_attachment') required int userAttachment,
|
|
});
|
|
|
|
@POST('/api/diary/{diary}/meals/{type_no}/portion/create')
|
|
Future<void> addProductToMeal({
|
|
@Path('diary') required int diary,
|
|
@Path('type_no') required int typeNo,
|
|
@Part(name: 'product_name') required String productName,
|
|
@Part(name: 'portion') required String portion,
|
|
@Part(name: 'quantity') required int quantity,
|
|
@Part(name: 'product_nutritional_value_id') int? productNutritionalValueId,
|
|
});
|
|
|
|
@PUT('/api/diary/{diary}/meals/{type_no}/portions/{portionModel}/update')
|
|
Future<void> updateProductInMeal({
|
|
@Path('diary') required int diary,
|
|
@Path('type_no') required int typeNo,
|
|
@Path('portionModel') required int portionModel,
|
|
@Body() required Map<String, dynamic> productInMeal,
|
|
});
|
|
|
|
@POST('/api/diary/{diary}/meals/{type_no}/{portionModel}/mark_eaten')
|
|
Future<void> markEaten({@Path('diary') required int diary, @Path('type_no') required int typeNo, @Path('portionModel') required int portionModel});
|
|
|
|
@POST('/api/diary/{diary}/meals/{type_no}/{portionModel}/unmark_eaten')
|
|
Future<void> unmarkEaten({@Path('diary') required int diary, @Path('type_no') required int typeNo, @Path('portionModel') required int portionModel});
|
|
|
|
@POST('/api/diary/{diary}/meals/{type_no}/portions/{portionModel}/restore')
|
|
Future<void> restore({@Path('diary') required int diary, @Path('type_no') required int typeNo, @Path('portionModel') required int portionModel});
|
|
|
|
@DELETE('/api/diary/{diary}/meals/{type_no}/portions/{portionModel}/delete')
|
|
Future<void> deleteProductFromMeal({
|
|
@Path('diary') required int diary,
|
|
@Path('type_no') required int typeNo,
|
|
@Path('portionModel') required int portionModel,
|
|
});
|
|
|
|
@POST('/api/diary/{diary}/finishDay')
|
|
Future<void> finishDiaryDay({@Path('diary') required int diary, @Body(nullToAbsent: true) required FinishDiaryDayModel finishDiaryDayModel});
|
|
|
|
@POST('/api/diary/{diary}/meals/{type_no}/satiety/fill')
|
|
Future<void> fillSatiety({@Path('diary') required int diary, @Path('type_no') required int typeNo, @Field() required int satiety});
|
|
|
|
@POST('/api/diary/{diary}/meals/{type_no}/mood/fill')
|
|
Future<void> fillMood({@Path('diary') required int diary, @Path('type_no') required int typeNo, @Field() required int mood});
|
|
|
|
@POST('/api/diary/{diary}/meals/{type_no}/time/fill')
|
|
Future<void> fillTime({@Path('diary') required int diary, @Path('type_no') required int typeNo, @Field() required String time});
|
|
|
|
@POST('/api/diary/{diary}/wakeUp/fill')
|
|
Future<void> fillWakeup({@Path('diary') required int diary, @Field() required String wakeUp});
|
|
|
|
@POST('/api/diary/{diary}/retire/fill')
|
|
Future<void> fillRetire({@Path('diary') required int diary, @Field() required String retire});
|
|
|
|
@POST('/api/diary/product_nutritional_values/sendToModeration')
|
|
Future<GlossaryModerationModel> sendProductToModeration({@Body() required Map<String, dynamic> data});
|
|
|
|
@POST('/api/diary/{id}/consultant/comment')
|
|
Future<void> commentUserDay({@Path('id') required int id, @Body() required ConsultantCommentModel body});
|
|
|
|
@GET('/api/chosen_plans/{planId}/{diaryId}/comments/show')
|
|
Future<ConsultantReviewModel> getDiaryComments({@Path() required int planId, @Path() required int diaryId});
|
|
|
|
@POST('/api/diary/{diaryId}/consultant/comment/view')
|
|
Future<void> viewCommentOfDiaryDayByConsultant({@Path() required int diaryId});
|
|
|
|
@GET('/api/glossaries/index')
|
|
Future<GlossaryPaginationModel> getGlossariesIndex({@Queries() Map<String, dynamic>? filters});
|
|
|
|
@POST('/api/v2/diary/create/day')
|
|
Future<void> createDay({@Body() required CreateDayModel body});
|
|
|
|
@GET('/api/v2/diary/index/{day?}')
|
|
Future<DiaryDayModel> getDiaryDayV2({@Query('day') required String day});
|
|
}
|