wildfire-im-sdk
Version:
野火IM SDK for Vue3 projects
61 lines (51 loc) • 1.76 kB
JavaScript
/*
* Copyright (c) 2020 WildFireChat. All rights reserved.
*/
import wfc from '../../client/wfc'
import MessageContentType from "../messageContentType";
import GroupNotificationContent from "./groupNotification";
export default class KickoffGroupMemberVisiableNotification extends GroupNotificationContent {
operator = '';
kickedMembers = [];
constructor(operator, kickedMembers) {
super(MessageContentType.KickOffGroupMember_Visible_Notification);
this.operator = operator;
this.kickedMembers = kickedMembers;
}
formatNotification() {
let notifyStr;
if (this.fromSelf) {
notifyStr = '您把 ';
} else {
notifyStr = wfc.getGroupMemberDisplayName(this.groupId, this.operator) + '把 ';
}
let kickedMembersStr = '';
let userInfos = wfc.getUserInfos(this.kickedMembers, this.groupId);
userInfos.forEach(userInfo => {
if (userInfo.uid === wfc.getUserId()) {
kickedMembersStr += ' 您';
} else {
kickedMembersStr += ' ' + userInfo.displayName;
}
});
return notifyStr + kickedMembersStr + ' 移除了群组';
}
encode() {
let payload = super.encode();
let obj = {
g: this.groupId,
ms: this.kickedMembers,
o: this.operateUser,
};
payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj));
return payload;
}
decode(payload) {
super.decode(payload);
let json = wfc.b64_to_utf8(payload.binaryContent)
let obj = JSON.parse(json);
this.groupId = obj.g;
this.operator = obj.o;
this.kickedMembers = obj.ms;
}
}