feat:更新api模块

This commit is contained in:
2025-11-17 22:36:20 +08:00
parent 504ee073ce
commit 6bba9a488c
17 changed files with 478 additions and 221 deletions

42
lib/apis/moment.dart Normal file
View File

@@ -0,0 +1,42 @@
import 'package:food_hub_app/models/moment.dart';
import 'package:food_hub_app/utils/http_util.dart';
import 'package:food_hub_app/utils/index.dart';
Future<bool> addMomentApi(Moment moment) {
return HttpUtil().post<bool>("/moment", data: moment);
}
Future<bool> updateMomentApi(int id, Moment moment) {
return HttpUtil().put<bool>("/moment/$id", data: moment);
}
Future<bool> deleteMomentApi(int id) {
return HttpUtil().delete<bool>("/moment/$id");
}
Future<List<Moment>> queryMomentListApi() {
return HttpUtil().get<List<Moment>>(
"/moment",
converter: (data) => convertListResponse<Moment>(data, Moment.fromJson),
);
}
Future<PageMoment> queryMomentByPageApi(int currentPage, int pageSize) {
return HttpUtil().get<PageMoment>(
"/moment/page",
queryParameters: {"currentPage": currentPage, "pageSize": pageSize},
converter: (data) => PageMoment.fromJson(data),
);
}
Future<bool> addMomentCommentApi(int id, String content) {
return HttpUtil().post<bool>("/moment/$id/comment", data: content);
}
Future<bool> addMomentLikeApi(int id) {
return HttpUtil().post<bool>("/food/moment/$id/like");
}
Future<bool> deleteMomentLikeApi(int id) {
return HttpUtil().delete<bool>("/food/moment/$id/like");
}

100
lib/apis/recipe.dart Normal file
View File

@@ -0,0 +1,100 @@
import 'package:food_hub_app/models/recipe.dart';
import 'package:food_hub_app/utils/http_util.dart';
import 'package:food_hub_app/utils/index.dart';
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) => convertListResponse<Recipe>(data, Recipe.fromJson),
);
}
Future<List<Recipe>> queryRecipeUserFavouriteApi() {
return HttpUtil().get<List<Recipe>>(
"/food/recipe/user/favourite",
converter: (data) => convertListResponse<Recipe>(data, Recipe.fromJson),
);
}
Future<List<RecipeSummary>> queryRecipeApi(RecipeQuery recipeQuery) {
return HttpUtil().get<List<RecipeSummary>>(
"/food/recipe",
queryParameters: recipeQuery.toJson(),
converter: (data) => convertListResponse<RecipeSummary>(data, RecipeSummary.fromJson),
);
}
Future<List<String>> queryFoodNameListApi() {
return HttpUtil().get<List<String>>(
"/food/recipe/name",
converter:
(data) => convertListResponse<String>(data, (json) => json.toString()),
);
}
Future<bool> addRecordApi(Record record) {
return HttpUtil().post<bool>("/food/record", data: record);
}
Future<bool> updateRecordApi(int id, Record 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<Record>> queryRecordApi(String startDate, String endDate) {
return HttpUtil().get<List<Record>>(
"/food/record",
queryParameters: {"startDate": startDate, "endDate": endDate},
converter: (data) => convertListResponse<Record>(data, Record.fromJson),
);
}
Future<List<String>> queryCategoryApi() {
return HttpUtil().get<List<String>>(
"/food/category",
converter:
(data) => convertListResponse<String>(data, (json) => json.toString()),
);
}

10
lib/apis/session.dart Normal file
View File

@@ -0,0 +1,10 @@
import 'package:food_hub_app/models/session.dart';
import 'package:food_hub_app/utils/http_util.dart';
Future<Session> loginApi(String username, String password) {
return HttpUtil().post<Session>(
"/session",
queryParameters: {"username": username, "password": password},
converter: (data) => Session.fromJson(data),
);
}

31
lib/apis/stats.dart Normal file
View File

@@ -0,0 +1,31 @@
import 'package:food_hub_app/models/stats.dart';
import 'package:food_hub_app/utils/http_util.dart';
import 'package:food_hub_app/utils/index.dart';
Future<SummaryStats> queryStatsApi() {
return HttpUtil().get<SummaryStats>(
"/food/stats",
converter: (data) => SummaryStats.fromJson(data),
);
}
Future<List<ChartData>> queryRecordStatsApi() {
return HttpUtil().get<List<ChartData>>(
"/food/stats/record",
converter: (data) => convertListResponse<ChartData>(data, ChartData.fromJson),
);
}
Future<List<ChartData>> queryCategoryStatsApi() {
return HttpUtil().get<List<ChartData>>(
"/food/stats/category",
converter: (data) => convertListResponse<ChartData>(data, ChartData.fromJson),
);
}
Future<List<ChartData>> queryRankStatsApi() {
return HttpUtil().get<List<ChartData>>(
"/food/stats/rank",
converter: (data) => convertListResponse<ChartData>(data, ChartData.fromJson),
);
}