import 'package:injectable/injectable.dart'; import 'package:get/get.dart'; import 'package:keyboard/data/repository/keyboard_repository.dart'; import '../../base/app_base_request.dart'; import '../../di/get_it.dart'; import '../../utils/atmob_log.dart'; import '../../utils/http_handler.dart'; import '../api/atmob_api.dart'; import '../api/request/character_add_request.dart'; import '../api/request/character_page_request.dart'; import '../api/request/character_unlock_request.dart'; import '../api/response/character_group_response.dart'; import '../api/response/character_page_response.dart'; import '../bean/character_group_info.dart'; @lazySingleton class CharactersRepository { final AtmobApi atmobApi; final String tag = "CharactersRepository"; // 人设主题 final RxList _characterGroupList = RxList(); RxList get characterGroupList => _characterGroupList; CharactersRepository(this.atmobApi) { AtmobLog.d(tag, '$tag....init'); getCharactersGroup(); } // 获取主题 Future getCharactersGroup() async { return atmobApi .getCharactersGroup(AppBaseRequest()) .then(HttpHandler.handle(true)) .then((response) { _characterGroupList.value = response.characterGroups; return response; }); } // 获取人设列表 Future getCharactersPage({ required String groupId, required String keyboardId, int page = 1, int pageSize = 5, }) { return atmobApi .getCharactersPage( CharacterPageRequest( keyboardId: keyboardId, groupId: groupId, page: page, pageSize: pageSize, ), ) .then(HttpHandler.handle(true)); } // 添加人设 Future characterAdd({ required String characterId, required String keyboardId, }) { return atmobApi .addCharacter( CharacterAddRequest(characterId: characterId, keyboardId: keyboardId), ) .then(HttpHandler.handle(true)); } // 解锁人设 Future characterUnlock({ required String characterId, required String keyboardId, }) { return atmobApi .unlockCharacter( CharacterUnlockRequest( characterId: characterId, keyboardId: keyboardId, ), ) .then(HttpHandler.handle(false)); } static CharactersRepository getInstance() => getIt.get(); }