#8 Added marker to indicate read status in talk chats

This commit is contained in:
2024-03-10 22:03:01 +01:00
parent 948ee19bda
commit 41372e9e86
25 changed files with 279 additions and 99 deletions

View File

@ -11,12 +11,23 @@ GetChatResponse _$GetChatResponseFromJson(Map<String, dynamic> json) =>
(json['data'] as List<dynamic>)
.map((e) => GetChatResponseObject.fromJson(e as Map<String, dynamic>))
.toSet(),
);
)..headers = (json['headers'] as Map<String, dynamic>?)?.map(
(k, e) => MapEntry(k, e as String),
);
Map<String, dynamic> _$GetChatResponseToJson(GetChatResponse instance) =>
<String, dynamic>{
'data': instance.data.map((e) => e.toJson()).toList(),
};
Map<String, dynamic> _$GetChatResponseToJson(GetChatResponse instance) {
final val = <String, dynamic>{};
void writeNotNull(String key, dynamic value) {
if (value != null) {
val[key] = value;
}
}
writeNotNull('headers', instance.headers);
val['data'] = instance.data.map((e) => e.toJson()).toList();
return val;
}
GetChatResponseObject _$GetChatResponseObjectFromJson(
Map<String, dynamic> json) =>

View File

@ -4,13 +4,14 @@ import 'package:http/http.dart';
import '../talkApi.dart';
import 'createRoomParams.dart';
class CreateRoom extends TalkApi<void> {
class CreateRoom extends TalkApi {
CreateRoomParams params;
CreateRoom(this.params) : super("v4/room", params);
@override
assemble(String raw) {
return null;
}
@override

View File

@ -1,10 +1,11 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:marianum_mobile/api/apiResponse.dart';
part 'getParticipantsResponse.g.dart';
@JsonSerializable(explicitToJson: true)
class GetParticipantsResponse {
class GetParticipantsResponse extends ApiResponse {
Set<GetParticipantsResponseObject> data;
GetParticipantsResponse(this.data);

View File

@ -13,13 +13,24 @@ GetParticipantsResponse _$GetParticipantsResponseFromJson(
.map((e) =>
GetParticipantsResponseObject.fromJson(e as Map<String, dynamic>))
.toSet(),
);
)..headers = (json['headers'] as Map<String, dynamic>?)?.map(
(k, e) => MapEntry(k, e as String),
);
Map<String, dynamic> _$GetParticipantsResponseToJson(
GetParticipantsResponse instance) =>
<String, dynamic>{
'data': instance.data.map((e) => e.toJson()).toList(),
};
GetParticipantsResponse instance) {
final val = <String, dynamic>{};
void writeNotNull(String key, dynamic value) {
if (value != null) {
val[key] = value;
}
}
writeNotNull('headers', instance.headers);
val['data'] = instance.data.map((e) => e.toJson()).toList();
return val;
}
GetParticipantsResponseObject _$GetParticipantsResponseObjectFromJson(
Map<String, dynamic> json) =>

View File

@ -1,9 +1,10 @@
import 'package:json_annotation/json_annotation.dart';
import 'package:marianum_mobile/api/apiResponse.dart';
part 'getReactionsResponse.g.dart';
@JsonSerializable(explicitToJson: true)
class GetReactionsResponse {
class GetReactionsResponse extends ApiResponse {
Map<String, List<GetReactionsResponseObject>> data;
GetReactionsResponse(this.data);

View File

@ -17,14 +17,25 @@ GetReactionsResponse _$GetReactionsResponseFromJson(
e as Map<String, dynamic>))
.toList()),
),
);
)..headers = (json['headers'] as Map<String, dynamic>?)?.map(
(k, e) => MapEntry(k, e as String),
);
Map<String, dynamic> _$GetReactionsResponseToJson(
GetReactionsResponse instance) =>
<String, dynamic>{
'data': instance.data
.map((k, e) => MapEntry(k, e.map((e) => e.toJson()).toList())),
};
GetReactionsResponse instance) {
final val = <String, dynamic>{};
void writeNotNull(String key, dynamic value) {
if (value != null) {
val[key] = value;
}
}
writeNotNull('headers', instance.headers);
val['data'] = instance.data
.map((k, e) => MapEntry(k, e.map((e) => e.toJson()).toList()));
return val;
}
GetReactionsResponseObject _$GetReactionsResponseObjectFromJson(
Map<String, dynamic> json) =>

View File

@ -3,13 +3,14 @@ import 'package:http/http.dart' as http;
import 'package:http/http.dart';
import '../talkApi.dart';
class LeaveRoom extends TalkApi<void> {
class LeaveRoom extends TalkApi {
String chatToken;
LeaveRoom(this.chatToken) : super("v4/room/$chatToken/participants/self", null);
@override
assemble(String raw) {
return null;
}
@override

View File

@ -11,12 +11,23 @@ GetRoomResponse _$GetRoomResponseFromJson(Map<String, dynamic> json) =>
(json['data'] as List<dynamic>)
.map((e) => GetRoomResponseObject.fromJson(e as Map<String, dynamic>))
.toSet(),
);
)..headers = (json['headers'] as Map<String, dynamic>?)?.map(
(k, e) => MapEntry(k, e as String),
);
Map<String, dynamic> _$GetRoomResponseToJson(GetRoomResponse instance) =>
<String, dynamic>{
'data': instance.data.map((e) => e.toJson()).toList(),
};
Map<String, dynamic> _$GetRoomResponseToJson(GetRoomResponse instance) {
final val = <String, dynamic>{};
void writeNotNull(String key, dynamic value) {
if (value != null) {
val[key] = value;
}
}
writeNotNull('headers', instance.headers);
val['data'] = instance.data.map((e) => e.toJson()).toList();
return val;
}
GetRoomResponseObject _$GetRoomResponseObjectFromJson(
Map<String, dynamic> json) =>

View File

@ -4,14 +4,16 @@ import 'package:http/http.dart';
import '../talkApi.dart';
class SetFavorite extends TalkApi<void> {
class SetFavorite extends TalkApi {
String chatToken;
bool favoriteState;
SetFavorite(this.chatToken, this.favoriteState) : super("v4/room/$chatToken/favorite", null);
@override
assemble(String raw) {}
assemble(String raw) {
return null;
}
@override
Future<Response> request(Uri uri, Object? body, Map<String, String>? headers) {

View File

@ -5,7 +5,7 @@ import 'package:http/http.dart';
import '../talkApi.dart';
import 'setReadMarkerParams.dart';
class SetReadMarker extends TalkApi<void> {
class SetReadMarker extends TalkApi {
String chatToken;
bool readState;
SetReadMarkerParams? setReadMarkerParams;
@ -16,7 +16,7 @@ class SetReadMarker extends TalkApi<void> {
@override
assemble(String raw) {
return null;
}
@override

View File

@ -1,6 +1,7 @@
import 'dart:developer';
import 'package:http/http.dart' as http;
import 'package:marianum_mobile/api/apiResponse.dart';
import '../../../model/accountData.dart';
import '../../../model/endpointData.dart';
@ -15,7 +16,7 @@ enum TalkApiMethod {
delete,
}
abstract class TalkApi<T> extends ApiRequest {
abstract class TalkApi<T extends ApiResponse?> extends ApiRequest {
String path;
ApiParams? body;
Map<String, String>? headers = {};
@ -54,6 +55,7 @@ abstract class TalkApi<T> extends ApiRequest {
T assembled;
try {
assembled = assemble(data.body);
assembled?.headers = data.headers;
return assembled;
} catch (e) {
// TODO report error