| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import 'package:get/get.dart';
- import 'package:injectable/injectable.dart';
- import 'package:location/data/api/atmob_api.dart';
- import 'package:location/di/get_it.dart';
- import 'package:location/utils/http_handler.dart';
- import '../api/request/message_request.dart';
- import '../api/request/request_friendlist_request.dart';
- import '../api/response/message_response.dart';
- import '../api/response/request_friend_list_response.dart';
- import '../bean/request_friend_info.dart';
- @lazySingleton
- class MessageRepository {
- final AtmobApi atmobApi;
- bool isRefreshing = false;
- Rxn<RequestFriendInfo> latestFriendRequest = Rxn<RequestFriendInfo>();
- RxInt waitingCount = RxInt(0);
- MessageRepository(this.atmobApi) {
- refreshFriendRequest();
- }
- static MessageRepository getInstance() {
- return getIt.get<MessageRepository>();
- }
- void refreshFriendRequest() {
- if (isRefreshing) {
- return;
- }
- isRefreshing = true;
- _getFriendRequestCount().whenComplete(() {
- isRefreshing = false;
- });
- }
- Future<RequestFriendListResponse> _getFriendRequestCount() {
- return atmobApi
- .getFriendRequestCount(RequestFriendListRequest())
- .then(HttpHandler.handle(true))
- .then((data) {
- if (data.list == null || data.list!.isEmpty) {
- latestFriendRequest.value = null;
- } else {
- latestFriendRequest.value = data.list!.first;
- }
- waitingCount.value = data.count;
- return data;
- });
- }
- void clearMessage() {
- latestFriendRequest.value = null;
- }
- Future<MessageResponse> getMessageList() {
- return atmobApi
- .getMessageList(MessageRequest())
- .then(HttpHandler.handle(true));
- }
- }
|