flutter-samples/lib/logics/models/poetry.dart
2025-05-03 15:33:44 +08:00

45 lines
1.4 KiB
Dart

import 'package:dio/dio.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_samples/helpers/constants/api.dart';
import 'package:flutter_samples/helpers/dio.dart';
import 'package:flutter_samples/logics/adapters/poetry.dart';
import 'package:flutter_samples/logics/entities/api/api_list.dart';
import 'package:flutter_samples/logics/entities/api/api_poetry.dart';
import 'package:flutter_samples/logics/entities/page/poetry.dart';
class PoetryModel {
// 获取诗词列表
Future<ApiList<Poetry>> getPoetryList(Map<String, dynamic> params) async {
final Response<dynamic> resp = await DioRequest.post(
ReqUrl.getPoetryList,
params,
);
final ApiList<ApiPoetry> data = ApiList.fromJson(
resp.data,
(json) => ApiPoetry.fromJson(json as Map<String, dynamic>),
);
return ApiList<Poetry>(
list:
data.list.map((e) => PoetryAdapter.fromAPIPoetryToPoetry(e)).toList(),
cursor: data.cursor,
page: data.page,
size: data.size,
total: data.total,
);
}
// 获取诗词详情
Future<Poetry> getPoetryDetail(Map<String, dynamic> params) async {
final Response<dynamic> resp = await DioRequest.post(
ReqUrl.getPoetryDetail,
params,
);
final ApiPoetryData data = ApiPoetryData.fromJson(resp.data);
return PoetryAdapter.fromAPIPoetryToPoetry(data.poetry);
}
}
final poetryProvider = Provider((ref) {
return PoetryModel();
});