forked from eatvio/eatvio_app
46 lines
1.3 KiB
Dart
46 lines
1.3 KiB
Dart
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/websocket_info_model.dart';
|
|
import 'package:retrofit/retrofit.dart';
|
|
|
|
part 'chat_service.g.dart';
|
|
|
|
@RestApi()
|
|
abstract class ChatService {
|
|
factory ChatService(Dio dio, {String baseUrl}) = _ChatService;
|
|
|
|
@GET('/api/chat/index')
|
|
Future<ChatRoomPreviewModel> getChatRoomPreviews({
|
|
@Query('find') String? query,
|
|
});
|
|
|
|
@GET('/api/chat/show/{id}')
|
|
Future<Map<String, ChatRoomModel>> getChatRoom({
|
|
@Path() required String id,
|
|
});
|
|
|
|
@POST('/api/chat/{id}/message/send')
|
|
@MultiPart()
|
|
Future<void> sendMessage({
|
|
@Path() required String id,
|
|
@Part() String? data,
|
|
@Part(name: 'media_data[]', contentType: 'multipart/form-data') List<MultipartFile>? media_data,
|
|
});
|
|
|
|
@GET('/api/chat/show/{id}/messages?page={page}')
|
|
Future<ChatMessagesModel> getChatMessages({
|
|
@Path() required String id,
|
|
@Path() required int page,
|
|
});
|
|
|
|
@GET('/api/profile/ws/params')
|
|
Future<WebsocketInfoModel> getWebsocket();
|
|
|
|
@GET('/api/chat/get_by_user/{user}')
|
|
Future<ChatRoomModel> getChatRoomIdByUserSlug({
|
|
@Path() required String user,
|
|
});
|
|
}
|