forked from Henry-Hiles/nexus
wip thing
This commit is contained in:
parent
3d341ac4d8
commit
0df327d125
21 changed files with 236 additions and 121 deletions
15
lib/models/requests/get_event_request.dart
Normal file
15
lib/models/requests/get_event_request.dart
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
import "package:freezed_annotation/freezed_annotation.dart";
|
||||
part "get_event_request.freezed.dart";
|
||||
part "get_event_request.g.dart";
|
||||
|
||||
@freezed
|
||||
abstract class GetEventRequest with _$GetEventRequest {
|
||||
const factory GetEventRequest({
|
||||
required String roomId,
|
||||
required String eventId,
|
||||
@Default(false) bool unredact,
|
||||
}) = _GetEventRequest;
|
||||
|
||||
factory GetEventRequest.fromJson(Map<String, Object?> json) =>
|
||||
_$GetEventRequestFromJson(json);
|
||||
}
|
||||
15
lib/models/requests/get_related_events_request.dart
Normal file
15
lib/models/requests/get_related_events_request.dart
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
import "package:freezed_annotation/freezed_annotation.dart";
|
||||
part "get_related_events_request.freezed.dart";
|
||||
part "get_related_events_request.g.dart";
|
||||
|
||||
@freezed
|
||||
abstract class GetRelatedEventsRequest with _$GetRelatedEventsRequest {
|
||||
const factory GetRelatedEventsRequest({
|
||||
required String roomId,
|
||||
required String eventId,
|
||||
required String relationType,
|
||||
}) = _GetRelatedEventsRequest;
|
||||
|
||||
factory GetRelatedEventsRequest.fromJson(Map<String, Object?> json) =>
|
||||
_$GetRelatedEventsRequestFromJson(json);
|
||||
}
|
||||
15
lib/models/requests/login_request.dart
Normal file
15
lib/models/requests/login_request.dart
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
import "package:freezed_annotation/freezed_annotation.dart";
|
||||
part "login_request.freezed.dart";
|
||||
part "login_request.g.dart";
|
||||
|
||||
@freezed
|
||||
abstract class LoginRequest with _$LoginRequest {
|
||||
const factory LoginRequest({
|
||||
required String username,
|
||||
required String password,
|
||||
required String homeserverUrl,
|
||||
}) = _LoginRequest;
|
||||
|
||||
factory LoginRequest.fromJson(Map<String, Object?> json) =>
|
||||
_$LoginRequestFromJson(json);
|
||||
}
|
||||
14
lib/models/requests/paginate_request.dart
Normal file
14
lib/models/requests/paginate_request.dart
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
import "package:freezed_annotation/freezed_annotation.dart";
|
||||
part "paginate_request.freezed.dart";
|
||||
part "paginate_request.g.dart";
|
||||
|
||||
@freezed
|
||||
abstract class PaginateRequest with _$PaginateRequest {
|
||||
const factory PaginateRequest({
|
||||
required String roomId,
|
||||
@Default(20) int limit,
|
||||
}) = _PaginateRequest;
|
||||
|
||||
factory PaginateRequest.fromJson(Map<String, Object?> json) =>
|
||||
_$PaginateRequestFromJson(json);
|
||||
}
|
||||
3
lib/models/requests/redact_event_request.dart
Normal file
3
lib/models/requests/redact_event_request.dart
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
import "package:nexus/models/requests/report_request.dart";
|
||||
|
||||
typedef RedactEventRequest = ReportRequest;
|
||||
15
lib/models/requests/report_request.dart
Normal file
15
lib/models/requests/report_request.dart
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
import "package:freezed_annotation/freezed_annotation.dart";
|
||||
part "report_request.freezed.dart";
|
||||
part "report_request.g.dart";
|
||||
|
||||
@freezed
|
||||
abstract class ReportRequest with _$ReportRequest {
|
||||
const factory ReportRequest({
|
||||
required String roomId,
|
||||
required String eventId,
|
||||
String? reason,
|
||||
}) = _ReportRequest;
|
||||
|
||||
factory ReportRequest.fromJson(Map<String, Object?> json) =>
|
||||
_$ReportRequestFromJson(json);
|
||||
}
|
||||
55
lib/models/requests/send_message_request.dart
Normal file
55
lib/models/requests/send_message_request.dart
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
import "package:fast_immutable_collections/fast_immutable_collections.dart";
|
||||
import "package:freezed_annotation/freezed_annotation.dart";
|
||||
import "package:nexus/models/relation_type.dart";
|
||||
part "send_message_request.freezed.dart";
|
||||
part "send_message_request.g.dart";
|
||||
|
||||
@freezed
|
||||
abstract class SendMessageRequest with _$SendMessageRequest {
|
||||
const factory SendMessageRequest({
|
||||
required String roomId,
|
||||
required String text,
|
||||
@Default(Mentions()) @JsonKey(name: "m.mentions") Mentions mentions,
|
||||
@JsonKey(name: "m.relates_to") Relation? relation,
|
||||
}) = _SendMessageRequest;
|
||||
|
||||
factory SendMessageRequest.fromJson(Map<String, Object?> json) =>
|
||||
_$SendMessageRequestFromJson(json);
|
||||
}
|
||||
|
||||
@freezed
|
||||
abstract class Mentions with _$Mentions {
|
||||
const factory Mentions({
|
||||
@Default(false) bool room,
|
||||
@Default(IList.empty()) IList<String> userIds,
|
||||
}) = _Mentions;
|
||||
|
||||
factory Mentions.fromJson(Map<String, Object?> json) =>
|
||||
_$MentionsFromJson(json);
|
||||
}
|
||||
|
||||
@freezed
|
||||
abstract class Relation with _$Relation {
|
||||
const Relation._(); // required for custom methods
|
||||
|
||||
const factory Relation({
|
||||
required String eventId,
|
||||
required RelationType relationType,
|
||||
}) = _Relation;
|
||||
|
||||
@override
|
||||
Map<String, Object?> toJson() {
|
||||
switch (relationType) {
|
||||
case RelationType.reply:
|
||||
return {
|
||||
"m.in_reply_to": {"event_id": eventId},
|
||||
};
|
||||
|
||||
case RelationType.edit:
|
||||
return {"rel_type": "m.replace", "event_id": eventId};
|
||||
}
|
||||
}
|
||||
|
||||
factory Relation.fromJson(Map<String, Object?> json) =>
|
||||
_$RelationFromJson(json);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue