forked from eatvio/eatvio_app
59 lines
2.0 KiB
Dart
59 lines
2.0 KiB
Dart
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:freezed_annotation/freezed_annotation.dart';
|
|
import 'package:retrofit/retrofit.dart';
|
|
|
|
part 'diary_service.freezed.dart';
|
|
part 'diary_service.g.dart';
|
|
|
|
@freezed
|
|
class ProductInMeal with _$ProductInMeal {
|
|
const factory ProductInMeal({
|
|
@JsonKey(name: 'product_name') required String productName,
|
|
@JsonKey(name: 'portion') required String portion,
|
|
@JsonKey(name: 'quantity') required int quantity,
|
|
}) = _ProductInMeal;
|
|
|
|
factory ProductInMeal.fromJson(Map<String, Object?> json) => _$ProductInMealFromJson(json);
|
|
}
|
|
|
|
@RestApi()
|
|
abstract class DiaryService {
|
|
factory DiaryService(Dio dio, {String baseUrl}) = _DiaryService;
|
|
|
|
@GET('/api/diary/index/{date}')
|
|
Future<DiaryIndexModel> getDiaryIndexByDate({
|
|
@Path('date') required String date, // yyyy-mm-dd
|
|
});
|
|
|
|
@GET('/api/diary/{diary_id}/show')
|
|
Future<DiaryDayWrapperModel> getDiaryDay({
|
|
@Path('diary_id') required int index,
|
|
});
|
|
|
|
@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,
|
|
});
|
|
}
|