keyboard_repository.dart 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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. });
  27. }
  28. // 获取键盘列表
  29. Future<KeyboardListResponse> getKeyboardList({String? type}) {
  30. return atmobApi
  31. .getKeyboardList(KeyboardListRequest(type: type))
  32. .then(HttpHandler.handle(true));
  33. }
  34. // 获取键盘人设列表
  35. Future<KeyboardCharacterListResponse> getKeyboardCharacterList({
  36. required String keyboardId,
  37. }) {
  38. return atmobApi
  39. .getKeyboardCharacterList(
  40. KeyboardCharacterListRequest(keyboardId: keyboardId),
  41. )
  42. .then(HttpHandler.handle(true));
  43. }
  44. //更新键盘人设
  45. Future<void> keyboardCharacterUpdate({
  46. required List<String> characterIds,
  47. required String keyboardId,
  48. }) {
  49. return atmobApi
  50. .keyboardCharacterUpdate(
  51. KeyboardCharacterUpdateRequest(
  52. keyboardId: keyboardId,
  53. characterIds: characterIds,
  54. ),
  55. )
  56. .then(HttpHandler.handle(true));
  57. }
  58. // 更新键盘信息
  59. Future<void> updateKeyboardInfo({
  60. required String keyboardId,
  61. String? name,
  62. String? imageUrl,
  63. String? birthday,
  64. int? intimacy,
  65. int? gender,
  66. }) {
  67. return atmobApi
  68. .keyboardUpdate(
  69. KeyboardUpdateRequest(
  70. keyboardId: keyboardId,
  71. name: name,
  72. imageUrl: imageUrl,
  73. birthday: birthday,
  74. intimacy: intimacy,
  75. gender: gender,
  76. ),
  77. )
  78. .then(HttpHandler.handle(true));
  79. }
  80. static KeyboardRepository getInstance() => getIt.get<KeyboardRepository>();
  81. }