45 lines
1.4 KiB
Dart
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();
|
|
});
|