forked from eatvio/eatvio_app
feat(chat): add init and dispose chat, typing info, receive a messages
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import 'package:eatvio_app/features/chat/models/chat_messages_model.dart';
|
||||
import 'package:eatvio_app/features/chat/models/chat_room_model.dart';
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:eatvio_app/features/chat/models/websocket_info_model.dart';
|
||||
@@ -10,7 +11,10 @@ abstract class ChatService {
|
||||
factory ChatService(Dio dio, {String baseUrl}) = _ChatService;
|
||||
|
||||
@GET('/chat/show/{id}')
|
||||
Future<Map<String, ChatRoomModel>> getChatRoomModel(@Path() String id);
|
||||
Future<Map<String, ChatRoomModel>> getChatRoom(@Path() String id);
|
||||
|
||||
@GET('/chat/show/{id}/messages')
|
||||
Future<ChatMessagesModel> getChatMessages(@Path() String id);
|
||||
|
||||
@GET('/profile/ws/params')
|
||||
Future<WebsocketInfoModel> getWebsocket();
|
||||
|
||||
@@ -6,7 +6,7 @@ part of 'chat_service.dart';
|
||||
// RetrofitGenerator
|
||||
// **************************************************************************
|
||||
|
||||
// ignore_for_file: unnecessary_brace_in_string_interps,no_leading_underscores_for_local_identifiers
|
||||
// ignore_for_file: unnecessary_brace_in_string_interps,no_leading_underscores_for_local_identifiers,unused_element
|
||||
|
||||
class _ChatService implements ChatService {
|
||||
_ChatService(
|
||||
@@ -19,7 +19,7 @@ class _ChatService implements ChatService {
|
||||
String? baseUrl;
|
||||
|
||||
@override
|
||||
Future<Map<String, ChatRoomModel>> getChatRoomModel(String id) async {
|
||||
Future<Map<String, ChatRoomModel>> getChatRoom(String id) async {
|
||||
final _extra = <String, dynamic>{};
|
||||
final queryParameters = <String, dynamic>{};
|
||||
final _headers = <String, dynamic>{};
|
||||
@@ -41,9 +41,36 @@ class _ChatService implements ChatService {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
var value = _result.data!.map((k, dynamic v) =>
|
||||
var _value = _result.data!.map((k, dynamic v) =>
|
||||
MapEntry(k, ChatRoomModel.fromJson(v as Map<String, dynamic>)));
|
||||
return value;
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<ChatMessagesModel> getChatMessages(String id) async {
|
||||
final _extra = <String, dynamic>{};
|
||||
final queryParameters = <String, dynamic>{};
|
||||
final _headers = <String, dynamic>{};
|
||||
const Map<String, dynamic>? _data = null;
|
||||
final _result = await _dio
|
||||
.fetch<Map<String, dynamic>>(_setStreamType<ChatMessagesModel>(Options(
|
||||
method: 'GET',
|
||||
headers: _headers,
|
||||
extra: _extra,
|
||||
)
|
||||
.compose(
|
||||
_dio.options,
|
||||
'/chat/show/${id}/messages',
|
||||
queryParameters: queryParameters,
|
||||
data: _data,
|
||||
)
|
||||
.copyWith(
|
||||
baseUrl: _combineBaseUrls(
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final _value = ChatMessagesModel.fromJson(_result.data!);
|
||||
return _value;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -69,8 +96,8 @@ class _ChatService implements ChatService {
|
||||
_dio.options.baseUrl,
|
||||
baseUrl,
|
||||
))));
|
||||
final value = WebsocketInfoModel.fromJson(_result.data!);
|
||||
return value;
|
||||
final _value = WebsocketInfoModel.fromJson(_result.data!);
|
||||
return _value;
|
||||
}
|
||||
|
||||
RequestOptions _setStreamType<T>(RequestOptions requestOptions) {
|
||||
|
||||
Reference in New Issue
Block a user