fixed pagination

This commit is contained in:
Username1548
2025-03-13 02:30:10 +07:00
parent 102dc9ee55
commit 9d53760137
38 changed files with 778 additions and 294 deletions

View File

@@ -1,7 +1,7 @@
import 'package:dio/dio.dart';
import 'package:eatvio_app/features/chat/models/chat_messages_model.dart';
import 'package:eatvio_app/features/chat/models/chat_room_model.dart';
import 'package:eatvio_app/features/chat/models/chat_room_preview_model.dart';
import 'package:eatvio_app/features/chat/models/chat_room_pagination_model.dart';
import 'package:retrofit/retrofit.dart';
part 'chat_service.g.dart';
@@ -11,7 +11,8 @@ abstract class ChatService {
factory ChatService(Dio dio, {String baseUrl}) = _ChatService;
@GET('/api/chat/index')
Future<ChatRoomPreviewModel> getChatRoomPreviews({
Future<ChatRoomPaginationModel> getChatRooms({
@Query('page') required int page,
@Query('find') String? query,
});

View File

@@ -18,13 +18,16 @@ class _ChatService implements ChatService {
final ParseErrorLogger? errorLogger;
@override
Future<ChatRoomPreviewModel> getChatRoomPreviews({String? query}) async {
Future<ChatRoomPaginationModel> getChatRooms({
required int page,
String? query,
}) async {
final _extra = <String, dynamic>{};
final queryParameters = <String, dynamic>{r'find': query};
final queryParameters = <String, dynamic>{r'page': page, r'find': query};
queryParameters.removeWhere((k, v) => v == null);
final _headers = <String, dynamic>{};
const Map<String, dynamic>? _data = null;
final _options = _setStreamType<ChatRoomPreviewModel>(
final _options = _setStreamType<ChatRoomPaginationModel>(
Options(method: 'GET', headers: _headers, extra: _extra)
.compose(
_dio.options,
@@ -35,9 +38,9 @@ class _ChatService implements ChatService {
.copyWith(baseUrl: _combineBaseUrls(_dio.options.baseUrl, baseUrl)),
);
final _result = await _dio.fetch<Map<String, dynamic>>(_options);
late ChatRoomPreviewModel _value;
late ChatRoomPaginationModel _value;
try {
_value = ChatRoomPreviewModel.fromJson(_result.data!);
_value = ChatRoomPaginationModel.fromJson(_result.data!);
} on Object catch (e, s) {
errorLogger?.logError(e, s, _options);
rethrow;