| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- 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/operation_friend_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) {
- refreshFriendWaitingCount();
- }
- static MessageRepository getInstance() {
- return getIt.get<MessageRepository>();
- }
- void refreshFriendWaitingCount() {
- if (isRefreshing) {
- return;
- }
- isRefreshing = true;
- getRequestWaitingList().whenComplete(() {
- isRefreshing = false;
- });
- }
- Future<RequestFriendListResponse> getRequestWaitingList() {
- return atmobApi
- .getRequestWaitingList(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;
- });
- }
- Future<RequestFriendListResponse> getRequestFriendList() {
- return atmobApi
- .getRequestFriendList(RequestFriendListRequest())
- .then(HttpHandler.handle(true));
- }
- void clearMessage() {
- latestFriendRequest.value = null;
- waitingCount.value = 0;
- }
- Future<MessageResponse> getMessageList() {
- return atmobApi
- .getMessageList(MessageRequest())
- .then(HttpHandler.handle(true));
- }
- Future<void> acceptFriendAccept(int friendId) {
- return atmobApi
- .acceptFriendAccept(OperationFriendRequest(friendId))
- .then(HttpHandler.handle(true))
- .then((_) => refreshFriendWaitingCount());
- }
- Future<void> refuseFriendAccept(int friendId) {
- return atmobApi
- .refuseFriendAccept(OperationFriendRequest(friendId))
- .then(HttpHandler.handle(true))
- .then((_) => refreshFriendWaitingCount());
- }
- }
|