characters_repository.dart 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import 'package:injectable/injectable.dart';
  2. import 'package:get/get.dart';
  3. import 'package:keyboard/data/repository/keyboard_repository.dart';
  4. import '../../base/app_base_request.dart';
  5. import '../../di/get_it.dart';
  6. import '../../utils/atmob_log.dart';
  7. import '../../utils/http_handler.dart';
  8. import '../api/atmob_api.dart';
  9. import '../api/request/character_add_request.dart';
  10. import '../api/request/character_page_request.dart';
  11. import '../api/request/character_unlock_request.dart';
  12. import '../api/response/character_group_response.dart';
  13. import '../api/response/character_page_response.dart';
  14. import '../bean/character_group_info.dart';
  15. @lazySingleton
  16. class CharactersRepository {
  17. final AtmobApi atmobApi;
  18. final String tag = "CharactersRepository";
  19. // 人设主题
  20. final RxList<CharacterGroupInfo> _characterGroupList =
  21. RxList<CharacterGroupInfo>();
  22. RxList<CharacterGroupInfo> get characterGroupList => _characterGroupList;
  23. CharactersRepository(this.atmobApi) {
  24. AtmobLog.d(tag, '$tag....init');
  25. getCharactersGroup();
  26. }
  27. // 获取主题
  28. Future<CharacterGroupResponse> getCharactersGroup() async {
  29. return atmobApi
  30. .getCharactersGroup(AppBaseRequest())
  31. .then(HttpHandler.handle(true))
  32. .then((response) {
  33. _characterGroupList.value = response.characterGroups;
  34. return response;
  35. });
  36. }
  37. // 获取人设列表
  38. Future<CharacterPageResponse> getCharactersPage({
  39. required String groupId,
  40. required String keyboardId,
  41. int page = 1,
  42. int pageSize = 5,
  43. }) {
  44. return atmobApi
  45. .getCharactersPage(
  46. CharacterPageRequest(
  47. keyboardId: keyboardId,
  48. groupId: groupId,
  49. page: page,
  50. pageSize: pageSize,
  51. ),
  52. )
  53. .then(HttpHandler.handle(true));
  54. }
  55. // 添加人设
  56. Future<void> characterAdd({
  57. required String characterId,
  58. required String keyboardId,
  59. }) {
  60. return atmobApi
  61. .addCharacter(
  62. CharacterAddRequest(characterId: characterId, keyboardId: keyboardId),
  63. )
  64. .then(HttpHandler.handle(true));
  65. }
  66. // 解锁人设
  67. Future<void> characterUnlock({
  68. required String characterId,
  69. required String keyboardId,
  70. }) {
  71. return atmobApi
  72. .unlockCharacter(
  73. CharacterUnlockRequest(
  74. characterId: characterId,
  75. keyboardId: keyboardId,
  76. ),
  77. )
  78. .then(HttpHandler.handle(false));
  79. }
  80. static CharactersRepository getInstance() =>
  81. getIt.get<CharactersRepository>();
  82. }