import 'package:novyronst/common/api/api_request.dart'; import 'package:novyronst/common/api/api_string.dart'; import 'package:novyronst/common/help/help_log.dart'; import 'package:novyronst/common/model/ny_category_model.dart'; import 'package:novyronst/common/model/ny_drama_model.dart'; import 'package:novyronst/common/model/ny_home_model.dart'; import '../model/ny_detail_model.dart'; class VideoRequest { static Future> getHomeData() { return ApiRequest.get(ApiStringVideo.getHomeModules).then((value) { if (value.isSuccess) { List? list = value.data['data']['list']; List homeList = []; if (list != null) { homeList = list.map((e) => NyHomeModel.fromJson(e)).toList(); } return homeList; } return []; }); } static Future> getCategoriesList() { return ApiRequest.get(ApiStringVideo.getCategoriesList).then((value) { // SkyLog.print('vvvvv: ${value.data}'); if (!value.isSuccess) return []; Map data = value.data['data']; List? list = data['list']; List categoryList = []; if (list != null) { // id 28 不显示,删除 categoryList = list.map((e) => NyCategoryModel.fromJson(e)).toList(); categoryList.removeWhere((element) => element.name.length >= 10); } return categoryList; }); } // getRecommandsList static Future> getRecommandsList({ int page = 1, int pageSize = 10, }) { Map params = _setPage(page: page, pageSize: pageSize); return ApiRequest.get(ApiStringVideo.getRecommandsList, queryParameters: params).then((value) { if (value.isSuccess) { // HelpLog.print('getRecommandsList: ${value.data}'); List list = parseDataForList(value.data); return list.map((e) => NyDramaModel.fromJson(e)).toList(); } return []; }); } static Future> getCategoriesDetail({ required int categoryId, int page = 1, int pageSize = 20, }) { return ApiRequest.fetchPage( ApiStringVideo.getCategoriesDetail, page: page, pageSize: pageSize, extraParams: {'category_id': categoryId}, fromJson: (json) => NyDramaModel.fromJson(json), ); } // getSearchHots static Future> getSearchTrending() { return ApiRequest.get(ApiStringVideo.getSearchHots).then((value) { if (value.isSuccess) { HelpLog.print('getSearchHots: ${value.data}'); List list = parseDataForList(value.data); return list.map((e) => NyDramaModel.fromJson(e)).toList(); } return []; }); } // search static Future> search({required String keyword}) { return ApiRequest.get(ApiStringVideo.getSearch, queryParameters: { 'search': keyword, }).then((value) { if (value.isSuccess) { HelpLog.print('getSearchHots: ${value.data}'); List list = parseDataForList(value.data); return list.map((e) => NyDramaModel.fromJson(e)).toList(); } return []; }); } //getCollections static Future> getCollections({ int page = 1, int pageSize = 10, }) { Map params = _setPage(page: page, pageSize: pageSize); return ApiRequest.get( ApiStringVideo.getCollections, queryParameters: params, ).then((value) { if (value.isSuccess) { HelpLog.print('getCollections: ${value.data}'); List list = parseDataForList(value.data); return list.map((e) => NyDramaModel.fromJson(e)).toList(); } return []; }); } // getHistory static Future> getHistory({ int page = 1, int pageSize = 10, }) { Map params = _setPage(page: page, pageSize: pageSize); return ApiRequest.get( ApiStringVideo.getHistories, queryParameters: params, ).then((value) { if (value.isSuccess) { HelpLog.print('getHistory: ${value.data}'); List list = parseDataForList(value.data); return list.map((e) => NyDramaModel.fromJson(e)).toList(); } return []; }); } // getVideoDetail static Future getVideoDetail({ required int shortPlayId, required int shortPlayVideoId, }) { Map params = {}; params['short_play_id'] = shortPlayId; params['short_play_video_id'] = shortPlayVideoId; return ApiRequest.get( ApiStringVideo.getVideoDetail, queryParameters: params, ).then((value) { if (value.isSuccess) { HelpLog.print('getVideoDetail: ${value.data}'); return NyDetailModel.fromJson(value.data['data']); } return null; }); } // collect static Future collect({ required int shortPlayId, required int videoId, }) { Map params = {}; params['short_play_id'] = shortPlayId; params['video_id'] = videoId; return ApiRequest.post(ApiStringVideo.collect, data: params).then((value) { HelpLog.print('collecttttt: ${value.data}'); if (value.isSuccess) {} return value.isSuccess; }); } // cancelCollect static Future cancelCollect({required int shortPlayId}) { Map params = {}; params['short_play_id'] = shortPlayId; return ApiRequest.post(ApiStringVideo.cancelCollect, data: params).then(( value, ) { HelpLog.print('cancelCollectttt: ${value.data}'); if (value.isSuccess) {} return value.isSuccess; }); } static Map _setPage({int page = 1, int pageSize = 10}) { return {'current_page': page, 'page_size': pageSize}; } static List parseDataForList(Map data) { Map map = data['data']; List? listData = map['list']; return listData ?? []; } }