mutePeerToChannel static method
Implementation
static Future<bool> mutePeerToChannel(
TPChannel tpChannel,
List<String> targetIds,
int expireInMinutes,
Function(TPChannel, List<TPMember>) successCallback,
{
Function(int? errorCode, String? errorMessage)? errorCallback
}) async
{
if (!_isInitialized(errorCallback: errorCallback)) { return false; }
if (!_checkAuthInfo(errorCallback: errorCallback)) { return false; }
if(targetIds.isEmpty) {
if(errorCallback != null) { errorCallback(-1, "target Ids is empty"); }
return false;
}
try {
// members
Map<String, dynamic> body = Map.from({"members": targetIds});
// expireInMinutes: 0 (forever)
if(expireInMinutes > 0){
body["expireInMinutes"] = expireInMinutes;
}
String url = "/channels/${tpChannel.getChannelId()}/peer/mute";
Map<String, dynamic> response = await HttpUtil.postJson(url, body);
// TPChannel
Map<String, dynamic> channel = response["channel"];
// TPMember List
List<TPMember> mutedMembers = List.from([]);
for (Map<String, dynamic> element in response["members"]) {
mutedMembers.add(TPMember(element));
}
// Succeeded
successCallback(TPChannel(channel), mutedMembers);
return true;
} on TPException catch(e) {
Logger.log("$e");
if(errorCallback != null) { errorCallback(e.getCode(), e.getMessage()); }
} catch(e){
Logger.log("$e");
if(errorCallback != null) { errorCallback(-1, e.toString()); }
}
return false;
}