Files
blog_app/lib/apis/blog.dart
2025-11-15 13:03:10 +08:00

53 lines
1.4 KiB
Dart

import 'package:blog_app/models/blog.dart';
import 'package:blog_app/models/common.dart';
import 'package:blog_app/utils/http_utils.dart';
import 'package:blog_app/utils/index.dart';
Future<PageResult<Blog>> queryBlogByPageApi(int currentPage, int pageSize) {
return HttpUtil().get<PageResult<Blog>>(
"/blog/page",
queryParameters: {"currentPage": currentPage, "pageSize": pageSize},
converter: (data) => convertPageResponse(data, Blog.fromJson),
);
}
Future<List<Blog>> queryBlogByConditionApi(
String? category,
String? title,
int? year,
) {
final Map<String, dynamic> queryParams = {};
if (category != null && category.isNotEmpty) {
queryParams['category'] = category;
}
if (title != null && title.isNotEmpty) {
queryParams['title'] = title;
}
if (year != null && year > 0) {
queryParams['year'] = year;
}
return HttpUtil().get<List<Blog>>(
"/blog/condition",
queryParameters: queryParams,
converter: (data) => convertListResponse<Blog>(data, Blog.fromJson),
);
}
Future<Blog> queryBlogByIdApi(int id) {
return HttpUtil().get<Blog>(
"/blog/$id/content",
converter: (data) => Blog.fromJson(data),
);
}
Future<List<BlogCategory>> queryBlogCategoryApi() {
return HttpUtil().get<List<BlogCategory>>(
"/blog/category",
converter:
(data) =>
convertListResponse<BlogCategory>(data, BlogCategory.fromJson),
);
}