| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- import 'dart:io';
- import 'package:electronic_assistant/data/api/atmob_api.dart';
- import 'package:electronic_assistant/data/api/request/talk_create_request.dart';
- import 'package:electronic_assistant/data/api/request/talk_delete_request.dart';
- import 'package:electronic_assistant/data/api/request/talk_file_request.dart';
- import 'package:get/get.dart';
- import '../../utils/http_handler.dart';
- import '../api/request/talk_generate_request.dart';
- import '../api/request/talk_paginate_request.dart';
- import '../api/request/talk_rename_request.dart';
- import '../api/request/talk_request.dart';
- import '../api/response/talk_check_electric_response.dart';
- import '../api/response/talk_info_response.dart';
- import '../api/response/talk_paginate_response.dart';
- import '../bean/talk_original.dart';
- import '../bean/talks.dart';
- class TalkRepository {
- TalkRepository._();
- final RxList<Rxn<TalkBean>> _talkList = <Rxn<TalkBean>>[].obs;
- RxList<Rxn<TalkBean>> get talkList => _talkList;
- void addNewTalkData(TalkBean talkInfo) {
- _talkList.insert(0, Rxn<TalkBean>(talkInfo));
- }
- clearTalkList() {
- _talkList.clear();
- }
- Future<TalkPaginateResponse> requestTalkPagePaginate(int page, int pageSize,
- {String? searchKeyword, int? sortType = 1}) {
- return talkPagePaginate(page, pageSize,
- searchKeyword: searchKeyword, sortType: sortType)
- .then((response) {
- if (page == 1) {
- _talkList.clear();
- }
- if (response.list != null) {
- _talkList.addAll(response.list!.map((e) => Rxn<TalkBean>(e)).toList());
- }
- return response;
- });
- }
- ///sortType 1:按创建时间倒序 2:按更新时间倒序
- Future<TalkPaginateResponse> talkPagePaginate(int page, int pageSize,
- {String? searchKeyword, int? sortType = 1}) {
- return atmobApi
- .talkPagePaginate(TalkPaginateRequest(page, pageSize,
- searchKeyword: searchKeyword, sortType: sortType))
- .then(HttpHandler.handle(false));
- }
- Future<List<TalkOriginal>> talkOriginal(String? talkId) {
- return atmobApi
- .talkOriginal(TalkRequest(talkId))
- .then(HttpHandler.handle(false))
- .then((data) {
- if (data.list != null) {
- return data.list!;
- } else {
- return [];
- }
- });
- }
- // duration 音频时长,单位为秒
- Future<TalkCheckElectricResponse> checkElectric(double duration) {
- return atmobApi
- .checkElectric(TalkGenerateRequest(duration))
- .then(HttpHandler.handle(false));
- }
- Future<TalkInfoResponse> talkInfo(String id) {
- return atmobApi.talkInfo(TalkRequest(id)).then(HttpHandler.handle(true));
- }
- Future<void> talkRename(String? id, String? title) {
- return atmobApi
- .talkRename(TalkRenameRequest(id, title))
- .then(HttpHandler.handle(true));
- }
- Future<void> talkDelete(String? id) {
- return atmobApi
- .talkDelete(TalkDeleteRequest(id))
- .then(HttpHandler.handle(true));
- }
- Future<TalkBean> talkCreate(String requestId, int duration) {
- return atmobApi
- .talkCreate(TalkCreateRequest(duration, requestId))
- .then(HttpHandler.handle(true));
- }
- Future<String> uploadTalkFile(String talkId, double duration, File file) {
- return atmobApi
- .uploadTalkFile(TalkFileRequest(talkId, duration, file: file).toJson())
- .then(HttpHandler.handle(true))
- .then((response) {
- return response.taskId;
- });
- }
- }
- final talkRepository = TalkRepository._();
|