wildfire-im-sdk
Version:
野火IM SDK for Vue3 projects
64 lines (55 loc) • 1.87 kB
JavaScript
/*
* Copyright (c) 2020 WildFireChat. All rights reserved.
*/
import GroupNotificationContent from "./groupNotification";
import wfc from "../../client/wfc";
import MessageContentType from "../messageContentType";
export default class GroupJoinTypeNotificationContent extends GroupNotificationContent {
operator;
//在group type为Restricted时,0 开放加入权限(群成员可以拉人,用户也可以主动加入);1 只能群成员拉人入群;2 只能群管理拉人入群
joinType;
constructor(operator, joinType) {
super(MessageContentType.ChangeJoinType_Notification);
this.operator = operator;
this.type = joinType;
}
formatNotification(message) {
let notifyStr;
if (this.fromSelf) {
notifyStr = '您';
} else {
notifyStr = wfc.getGroupMemberDisplayName(this.groupId, this.operator);
}
switch (this.joinType) {
case 0:
notifyStr += ' 开放了加入群组功能';
break;
case 1:
notifyStr += ' 仅允许群成员邀请加入群组';
break;
case 2:
notifyStr += " 关闭了加入群组功能";
break;
default:
break;
}
return notifyStr;
}
encode() {
let payload = super.encode();
let obj = {
g: this.groupId,
o: this.operator,
n: (this.joinType + '')
};
payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj));
return payload;
}
decode(payload) {
super.decode(payload);
let obj = JSON.parse(wfc.b64_to_utf8(payload.binaryContent));
this.groupId = obj.g;
this.operator = obj.o;
this.joinType = parseInt(obj.n);
}
}