talk_repository.dart 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import 'dart:io';
  2. import 'package:dio/dio.dart';
  3. import 'package:electronic_assistant/data/api/atmob_api.dart';
  4. import 'package:electronic_assistant/data/api/request/talk_create_request.dart';
  5. import 'package:electronic_assistant/data/api/request/talk_delete_request.dart';
  6. import 'package:electronic_assistant/data/api/request/talk_file_request.dart';
  7. import 'package:get/get_state_manager/src/rx_flutter/rx_disposable.dart';
  8. import '../../utils/http_handler.dart';
  9. import '../api/request/talk_generate_request.dart';
  10. import '../api/request/talk_rename_request.dart';
  11. import '../api/request/talk_request.dart';
  12. import '../api/response/talk_check_electric_response.dart';
  13. import '../api/response/talk_info_response.dart';
  14. import '../bean/talk_original.dart';
  15. import '../bean/talks.dart';
  16. class TalkRepository {
  17. TalkRepository._();
  18. Future<List<TalkOriginal>> talkOriginal(String? talkId) {
  19. return atmobApi
  20. .talkOriginal(TalkRequest(talkId))
  21. .then(HttpHandler.handle(false))
  22. .then((data) {
  23. if (data.list != null) {
  24. return data.list!;
  25. } else {
  26. return [];
  27. }
  28. });
  29. }
  30. // duration 音频时长,单位为秒
  31. Future<TalkCheckElectricResponse> checkElectric(double duration) {
  32. return atmobApi
  33. .checkElectric(TalkGenerateRequest(duration))
  34. .then(HttpHandler.handle(false));
  35. }
  36. Future<TalkInfoResponse> talkInfo(String id) {
  37. return atmobApi.talkInfo(TalkRequest(id)).then(HttpHandler.handle(true));
  38. }
  39. Future<void> talkRename(String? id, String? title) {
  40. return atmobApi
  41. .talkRename(TalkRenameRequest(id, title))
  42. .then(HttpHandler.handle(true));
  43. }
  44. Future<void> talkDelete(String? id) {
  45. return atmobApi
  46. .talkDelete(TalkDeleteRequest(id))
  47. .then(HttpHandler.handle(true));
  48. }
  49. Future<TalkBean> talkCreate(String requestId, int duration) {
  50. return atmobApi
  51. .talkCreate(TalkCreateRequest(duration, requestId))
  52. .then(HttpHandler.handle(true));
  53. }
  54. Future<String> uploadTalkFile(String talkId, double duration, File file) {
  55. return atmobApi
  56. .uploadTalkFile(TalkFileRequest(talkId, duration, file: file).toJson())
  57. .then(HttpHandler.handle(true))
  58. .then((response) {
  59. return response.taskId;
  60. });
  61. }
  62. }
  63. final talkRepository = TalkRepository._();