talk_repository.dart 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import 'package:electronic_assistant/data/api/atmob_api.dart';
  2. import 'package:electronic_assistant/data/api/request/talk_delete_request.dart';
  3. import '../../utils/http_handler.dart';
  4. import '../api/request/talk_generate_request.dart';
  5. import '../api/request/talk_rename_request.dart';
  6. import '../api/request/talk_request.dart';
  7. import '../api/response/talk_check_electric_response.dart';
  8. import '../api/response/talk_info_response.dart';
  9. import '../bean/talk_info.dart';
  10. import '../api/response/talk_original_response.dart';
  11. import '../bean/talk_original.dart';
  12. class TalkRepository {
  13. TalkRepository._();
  14. Future<List<TalkOriginal>> talkOriginal(String? talkId) {
  15. return atmobApi
  16. .talkOriginal(TalkRequest(talkId))
  17. .then(HttpHandler.handle(false))
  18. .then((data) {
  19. if (data.list != null) {
  20. return data.list!;
  21. } else {
  22. return [];
  23. }
  24. });
  25. }
  26. // duration 音频时长,单位为秒
  27. Future<TalkCheckElectricResponse> checkElectric(double duration) {
  28. return atmobApi
  29. .checkElectric(TalkGenerateRequest(duration))
  30. .then(HttpHandler.handle(false));
  31. }
  32. Future<TalkInfoResponse> talkInfo(String id) {
  33. return atmobApi.talkInfo(TalkRequest(id)).then(HttpHandler.handle(true));
  34. }
  35. Future<void> talkRename(String? id, String? title) {
  36. return atmobApi
  37. .talkRename(TalkRenameRequest(id, title))
  38. .then(HttpHandler.handle(true));
  39. }
  40. Future<void> talkDelete(String? id) {
  41. return atmobApi
  42. .talkDelete(TalkDeleteRequest(id))
  43. .then(HttpHandler.handle(true));
  44. }
  45. }
  46. final talkRepository = TalkRepository._();