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 queryRecipeByIdApi(int id) { return httpUtil.get( "/food/recipe/$id", converter: (data) => Recipe.fromJson(data), ); } Future addRecipeApi(Recipe recipe) { return httpUtil.post("/food/recipe", data: recipe); } Future updateRecipeApi(int id, Recipe recipe) { return httpUtil.put("/food/recipe/$id", data: recipe); } Future deleteRecipeApi(int id) { return httpUtil.delete("/food/recipe/$id"); } Future> queryRecipeByUserApi(int id) { return httpUtil.get>( "/food/recipe/user/$id", converter: (data) => convertList(data, RecipeSummary.fromJson), ); } Future> queryRecipeUserFavouriteApi() { return httpUtil.get>( "/food/recipe/user/favourite", converter: (data) => convertList(data, Recipe.fromJson), ); } Future> queryRecipeApi(RecipeQuery recipeQuery) { return httpUtil.get>( "/food/recipe", queryParameters: recipeQuery.toJson(), converter: (data) => convertList(data, RecipeSummary.fromJson), ); } Future> queryFoodNameListApi() { return httpUtil.get>( "/food/recipe/name", converter: (data) => convertStringList(data), ); } Future addRecordApi(FoodRecord record) { return httpUtil.post("/food/record", data: record); } Future updateRecordApi(int id, FoodRecord record) { return httpUtil.put("/food/record/$id", data: record); } Future deleteRecordApi(int id) { return httpUtil.delete("/food/record/$id"); } Future addRecipeCommentApi(int id, String content) { return httpUtil.post("/food/recipe/$id/comment", data: content); } Future addRecipeLikeApi(int id) { return httpUtil.post("/food/recipe/$id/like"); } Future deleteRecipeLikeApi(int id) { return httpUtil.delete("/food/recipe/$id/like"); } Future addRecipeFavouriteApi(int id) { return httpUtil.post("/food/recipe/$id/favourite"); } Future deleteRecipeFavouriteApi(int id) { return httpUtil.delete("/food/recipe/$id/like"); } Future> queryRecordApi(String startDate, String endDate) { return httpUtil.get>( "/food/record", queryParameters: {"startDate": startDate, "endDate": endDate}, converter: (data) => convertList(data, FoodRecord.fromJson), ); } Future> queryCategoryApi() { return httpUtil.get>( "/food/category", converter: (data) => convertListStringResponse(data), ); }