103 lines
3.2 KiB
Dart
103 lines
3.2 KiB
Dart
import 'package:blog_app/config/app_config.dart';
|
|
import 'package:blog_app/models/blog.dart';
|
|
import 'package:flutter_common/models/common_model.dart';
|
|
import 'package:flutter_common/utils/convert_utils.dart';
|
|
import 'package:flutter_common/utils/http_utils.dart';
|
|
|
|
Future<PageResult<Blog>> queryBlogByPageApi(int currentPage, int pageSize) {
|
|
return HttpUtil(baseUrl: AppConfig.baseApiUrl).get<PageResult<Blog>>(
|
|
"/blog/page",
|
|
queryParameters: {"currentPage": currentPage, "pageSize": pageSize},
|
|
converter: (data) => convertPage(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(baseUrl: AppConfig.baseApiUrl).get<List<Blog>>(
|
|
"/blog/condition",
|
|
queryParameters: queryParams,
|
|
converter: (data) => convertList<Blog>(data, Blog.fromJson),
|
|
);
|
|
}
|
|
|
|
Future<List<BlogSearch>> searchBlog(String keyword) {
|
|
return HttpUtil(baseUrl: AppConfig.baseApiUrl).get<List<BlogSearch>>(
|
|
"/blog/search",
|
|
queryParameters: {"keyword": keyword},
|
|
converter: (data) => convertList<BlogSearch>(data, BlogSearch.fromJson),
|
|
);
|
|
}
|
|
|
|
Future<Blog> queryBlogByIdApi(int id) {
|
|
return HttpUtil(
|
|
baseUrl: AppConfig.baseApiUrl,
|
|
).get<Blog>("/blog/$id/content", converter: (data) => Blog.fromJson(data));
|
|
}
|
|
|
|
Future<List<BlogCategory>> queryBlogCategoryApi() {
|
|
return HttpUtil(baseUrl: AppConfig.baseApiUrl).get<List<BlogCategory>>(
|
|
"/blog/category",
|
|
converter: (data) => convertList<BlogCategory>(data, BlogCategory.fromJson),
|
|
);
|
|
}
|
|
|
|
Future<BlogStats> queryBlogOverviewStatsApi() {
|
|
return HttpUtil(baseUrl: AppConfig.baseApiUrl).get<BlogStats>(
|
|
"/stats/overview",
|
|
converter: (data) => BlogStats.fromJson(data),
|
|
);
|
|
}
|
|
|
|
Future<List<ChartData>> queryBlogApprovedStatsApi(int year) {
|
|
return HttpUtil(baseUrl: AppConfig.baseApiUrl).get<List<ChartData>>(
|
|
"/stats/approved/monthly",
|
|
queryParameters: {"year": year},
|
|
converter: (data) => convertList<ChartData>(data, ChartData.fromJson),
|
|
);
|
|
}
|
|
|
|
Future<List<ChartData>> queryBlogVisitStatsApi(int year) {
|
|
return HttpUtil(baseUrl: AppConfig.baseApiUrl).get<List<ChartData>>(
|
|
"/stats/visit/monthly",
|
|
queryParameters: {"year": year},
|
|
converter: (data) => convertList<ChartData>(data, ChartData.fromJson),
|
|
);
|
|
}
|
|
|
|
Future<List<ChartData>> queryBlogVisitRankStatsApi() {
|
|
return HttpUtil(baseUrl: AppConfig.baseApiUrl).get<List<ChartData>>(
|
|
"/stats/visit/rank",
|
|
converter: (data) => convertList<ChartData>(data, ChartData.fromJson),
|
|
);
|
|
}
|
|
|
|
Future<List<ChartData>> queryBlogCategoryStatsApi() {
|
|
return HttpUtil(baseUrl: AppConfig.baseApiUrl).get<List<ChartData>>(
|
|
"/stats/category",
|
|
converter: (data) => convertList<ChartData>(data, ChartData.fromJson),
|
|
);
|
|
}
|
|
|
|
Future<List<ChartData>> queryBlogReadRankStatsApi() {
|
|
return HttpUtil(baseUrl: AppConfig.baseApiUrl).get<List<ChartData>>(
|
|
"/stats/read/rank",
|
|
converter: (data) => convertList<ChartData>(data, ChartData.fromJson),
|
|
);
|
|
}
|