keyboard_repository.dart 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import 'package:get/get.dart';
  2. import 'package:injectable/injectable.dart';
  3. import 'package:keyboard/data/api/request/keyboard_character_update_request.dart';
  4. import 'package:keyboard/data/api/request/keyboard_list_request.dart';
  5. import '../../di/get_it.dart';
  6. import '../../utils/http_handler.dart';
  7. import '../api/atmob_api.dart';
  8. import '../api/request/keyboard_character_list_request.dart';
  9. import '../api/request/keyboard_update_request.dart';
  10. import '../api/response/keyboard_character_list_response.dart';
  11. import '../api/response/keyboard_list_response.dart';
  12. import '../bean/keyboard_info.dart';
  13. @lazySingleton
  14. class KeyboardRepository {
  15. final tag = "KeyboardRepository";
  16. final AtmobApi atmobApi;
  17. final RxList<KeyboardInfo> _keyboardInfoList = RxList();
  18. RxList<KeyboardInfo> get keyboardInfoList => _keyboardInfoList;
  19. KeyboardRepository(this.atmobApi) {
  20. print('$tag....init');
  21. refreshKeyboardList();
  22. }
  23. Future refreshKeyboardList() async {
  24. return getKeyboardList().then((response) {
  25. _keyboardInfoList.value = response.keyboardInfos;
  26. print('$tag refreshKeyboardList: ${response.keyboardInfos.first.id}');
  27. });
  28. }
  29. // 获取键盘列表
  30. Future<KeyboardListResponse> getKeyboardList({String? type}) {
  31. return atmobApi
  32. .getKeyboardList(KeyboardListRequest(type: type))
  33. .then(HttpHandler.handle(true));
  34. }
  35. // 获取键盘人设列表
  36. Future<KeyboardCharacterListResponse> getKeyboardCharacterList({
  37. required String keyboardId,
  38. }) {
  39. return atmobApi
  40. .getKeyboardCharacterList(
  41. KeyboardCharacterListRequest(keyboardId: keyboardId),
  42. )
  43. .then(HttpHandler.handle(true));
  44. }
  45. //更新键盘人设
  46. Future<void> keyboardCharacterUpdate({
  47. required List<String> characterIds,
  48. required String keyboardId,
  49. }) {
  50. return atmobApi
  51. .keyboardCharacterUpdate(
  52. KeyboardCharacterUpdateRequest(
  53. keyboardId: keyboardId,
  54. characterIds: characterIds,
  55. ),
  56. )
  57. .then(HttpHandler.handle(true));
  58. }
  59. // 更新键盘信息
  60. Future<void> updateKeyboardInfo({
  61. required String keyboardId,
  62. String? name,
  63. String? imageUrl,
  64. String? birthday,
  65. int? intimacy,
  66. int? gender,
  67. }) {
  68. return atmobApi
  69. .keyboardUpdate(
  70. KeyboardUpdateRequest(
  71. keyboardId: keyboardId,
  72. name: name,
  73. imageUrl: imageUrl,
  74. birthday: birthday,
  75. intimacy: intimacy,
  76. gender: gender,
  77. ),
  78. )
  79. .then(HttpHandler.handle(true));
  80. }
  81. static KeyboardRepository getInstance() => getIt.get<KeyboardRepository>();
  82. }