Files
food_hub_app/lib/apis/recipe.dart
2025-11-23 00:02:41 +08:00

104 lines
2.9 KiB
Dart

import 'package:flutter_common/utils/convert_utils.dart';
import 'package:flutter_common/utils/http_utils.dart';
import 'package:food_hub_app/config/app_config.dart';
import 'package:food_hub_app/models/recipe.dart';
import 'package:food_hub_app/utils/index.dart';
final httpUtil = HttpUtil(baseUrl: AppConfig.baseApiUrl);
Future<RecipeDetail> queryRecipeByIdApi(int id) {
return httpUtil.get<RecipeDetail>(
"/food/recipe/$id",
converter: (data) => RecipeDetail.fromJson(data),
);
}
Future<bool> addRecipeApi(Recipe recipe) {
return httpUtil.post<bool>("/food/recipe", data: recipe);
}
Future<bool> updateRecipeApi(int id, Recipe recipe) {
return httpUtil.put<bool>("/food/recipe/$id", data: recipe);
}
Future<bool> deleteRecipeApi(int id) {
return httpUtil.delete<bool>("/food/recipe/$id");
}
Future<List<Recipe>> queryRecipeByUserApi(int id) {
return httpUtil.get<List<Recipe>>(
"/food/recipe/user/$id",
converter: (data) => convertList<Recipe>(data, Recipe.fromJson),
);
}
Future<List<Recipe>> queryRecipeUserFavouriteApi() {
return httpUtil.get<List<Recipe>>(
"/food/recipe/user/favourite",
converter: (data) => convertList<Recipe>(data, Recipe.fromJson),
);
}
Future<List<RecipeSummary>> queryRecipeApi(RecipeQuery recipeQuery) {
return httpUtil.get<List<RecipeSummary>>(
"/food/recipe",
queryParameters: recipeQuery.toJson(),
converter:
(data) => convertList<RecipeSummary>(data, RecipeSummary.fromJson),
);
}
Future<List<String>> queryFoodNameListApi() {
return httpUtil.get<List<String>>(
"/food/recipe/name",
converter: (data) => convertStringList(data),
);
}
Future<bool> addRecordApi(FoodRecord record) {
return httpUtil.post<bool>("/food/record", data: record);
}
Future<bool> updateRecordApi(int id, FoodRecord record) {
return httpUtil.put<bool>("/food/record/$id", data: record);
}
Future<bool> deleteRecordApi(int id) {
return httpUtil.delete<bool>("/food/record/$id");
}
Future<bool> addRecipeCommentApi(int id, String content) {
return httpUtil.post<bool>("/food/recipe/$id/comment", data: content);
}
Future<bool> addRecipeLikeApi(int id) {
return httpUtil.post<bool>("/food/recipe/$id/like");
}
Future<bool> deleteRecipeLikeApi(int id) {
return httpUtil.delete<bool>("/food/recipe/$id/like");
}
Future<bool> addRecipeFavouriteApi(int id) {
return httpUtil.post<bool>("/food/recipe/$id/favourite");
}
Future<bool> deleteRecipeFavouriteApi(int id) {
return httpUtil.delete<bool>("/food/recipe/$id/like");
}
Future<List<FoodRecord>> queryRecordApi(String startDate, String endDate) {
return httpUtil.get<List<FoodRecord>>(
"/food/record",
queryParameters: {"startDate": startDate, "endDate": endDate},
converter: (data) => convertList<FoodRecord>(data, FoodRecord.fromJson),
);
}
Future<List<String>> queryCategoryApi() {
return httpUtil.get<List<String>>(
"/food/category",
converter: (data) => convertListStringResponse(data),
);
}