agenda_repository.dart 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import 'package:electronic_assistant/data/api/request/talk_request.dart';
  2. import 'package:electronic_assistant/data/bean/agenda.dart';
  3. import 'package:get/get_rx/src/rx_types/rx_types.dart';
  4. import '../../utils/http_handler.dart';
  5. import '../api/atmob_api.dart';
  6. import '../api/request/agenda_request.dart';
  7. import '../api/request/agenda_status_request.dart';
  8. import '../api/request/agenda_todo_request.dart';
  9. import '../api/response/agenda_list_all_response.dart';
  10. import '../api/response/agenda_list_mine_response.dart';
  11. import '../api/response/agenda_response.dart';
  12. class AgendaRepository {
  13. AgendaRepository._();
  14. final RxList<Rx<Agenda>> _agendaList = <Rx<Agenda>>[].obs;
  15. RxList<Rx<Agenda>> get agendaList => _agendaList;
  16. clearAgendaList() {
  17. _agendaList.clear();
  18. }
  19. removeItem(Agenda item) {
  20. _agendaList.removeWhere((element) => element.value.id == item.id);
  21. }
  22. Future<AgendaResponse> requestHomeAgendaData(
  23. {int pageSize = 999, TaskStatus completeStatus = TaskStatus.TODO}) {
  24. return requestAgendaPagePaginate(1, pageSize,
  25. completeStatus: completeStatus);
  26. }
  27. Future<AgendaResponse> requestAgendaPagePaginate(int page, int pageSize,
  28. {TaskStatus? completeStatus}) {
  29. return agendaPage(page, pageSize, completeStatus: completeStatus)
  30. .then((response) {
  31. if (page == 1) {
  32. _agendaList.clear();
  33. }
  34. if (response.list != null) {
  35. _agendaList.addAll(response.list!.map((e) => Rx<Agenda>(e)).toList());
  36. }
  37. return response;
  38. });
  39. }
  40. Future<AgendaResponse> agendaPage(int page, int pageSize,
  41. {int? startTime, int? endTime, TaskStatus? completeStatus}) {
  42. return atmobApi
  43. .agendaPage(AgendaRequest(page, pageSize,
  44. startTime: startTime,
  45. endTime: endTime,
  46. completeStatus: completeStatus?.value))
  47. .then(HttpHandler.handle(true));
  48. }
  49. Future<void> agendaFinish(String? id, bool complete) {
  50. return atmobApi
  51. .agendaFinish(AgendaStatusRequest(id, complete))
  52. .then(HttpHandler.handle(true));
  53. }
  54. Future<AgendaListAllResponse> agendaListAll(String talkId) {
  55. return atmobApi
  56. .agendaListAll(TalkRequest(talkId))
  57. .then(HttpHandler.handle(true));
  58. }
  59. Future<AgendaListMineResponse> agendaListMine(String talkId) {
  60. return atmobApi
  61. .agendaListMine(TalkRequest(talkId))
  62. .then(HttpHandler.handle(true));
  63. }
  64. Future<void> agendaTodo(String id, bool isTodo) {
  65. return atmobApi
  66. .agendaTodo(AgendaTodoRequest(id, isTodo))
  67. .then(HttpHandler.handle(true));
  68. }
  69. }
  70. final agendaRepository = AgendaRepository._();