Add (WIP) ban/klck ability
This commit is contained in:
parent
c130d28b93
commit
3a1bcb5b8f
13 changed files with 113 additions and 30 deletions
|
|
@ -1,12 +1,14 @@
|
|||
import "package:fast_immutable_collections/fast_immutable_collections.dart";
|
||||
import "package:freezed_annotation/freezed_annotation.dart";
|
||||
import "package:nexus/helpers/extensions/mxc_to_https.dart";
|
||||
import "package:nexus/models/membership_status.dart";
|
||||
part "membership.freezed.dart";
|
||||
|
||||
@freezed
|
||||
abstract class Membership with _$Membership {
|
||||
const Membership._();
|
||||
const factory Membership({
|
||||
required MembershipStatus status,
|
||||
required Uri? avatarUrl,
|
||||
required String displayName,
|
||||
required String userId,
|
||||
|
|
@ -17,6 +19,10 @@ abstract class Membership with _$Membership {
|
|||
String userId,
|
||||
String homeserver,
|
||||
) => Membership(
|
||||
status: MembershipStatus.values.firstWhere(
|
||||
(status) => status.name == content["membership"],
|
||||
orElse: () => MembershipStatus.leave,
|
||||
),
|
||||
avatarUrl: Uri.tryParse(
|
||||
content["avatar_url"] ?? "",
|
||||
)?.mxcToHttps(homeserver),
|
||||
|
|
|
|||
4
lib/models/membership_status.dart
Normal file
4
lib/models/membership_status.dart
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
import "package:freezed_annotation/freezed_annotation.dart";
|
||||
|
||||
@JsonEnum()
|
||||
enum MembershipStatus { leave, invite, ban, join }
|
||||
20
lib/models/requests/set_membership_request.dart
Normal file
20
lib/models/requests/set_membership_request.dart
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
import "package:freezed_annotation/freezed_annotation.dart";
|
||||
part "set_membership_request.freezed.dart";
|
||||
part "set_membership_request.g.dart";
|
||||
|
||||
@freezed
|
||||
abstract class SetMembershipRequest with _$SetMembershipRequest {
|
||||
const factory SetMembershipRequest({
|
||||
required String userId,
|
||||
required String roomId,
|
||||
|
||||
@JsonKey(name: "action") required MembershipAction action,
|
||||
@Default(false) @JsonKey(name: "msc4293_redact_events") bool redact,
|
||||
}) = _SetMembershipRequest;
|
||||
|
||||
factory SetMembershipRequest.fromJson(Map<String, Object?> json) =>
|
||||
_$SetMembershipRequestFromJson(json);
|
||||
}
|
||||
|
||||
@JsonEnum()
|
||||
enum MembershipAction { ban, kick, unban, invite }
|
||||
Loading…
Add table
Add a link
Reference in a new issue