createTPChannel static method
Implementation
static Future<TPChannel?> createTPChannel(TPChannelCreateParams params,
{ Function(int? errorCode, String? errorMessage)? errorCallback }) async
{
if (!_isInitialized(errorCallback: errorCallback)) { return null; }
if (!_checkAuthInfo(errorCallback: errorCallback)) { return null; }
Map<String, dynamic> body = Map.from({});
switch(params.channelType) {
case TPChannelCreateType.TPChannelPublic: body["type"] = "public"; break;
case TPChannelCreateType.TPChannelSuperPublic: body["type"] = "super_public"; break;
case TPChannelCreateType.TPChannelPrivate: body["type"] = "private"; break;
case TPChannelCreateType.TPChannelSuperPrivate: body["type"] = "super_private"; break;
case TPChannelCreateType.TPChannelInvitationOnly: body["type"] = "invitationOnly"; break;
case TPChannelCreateType.TPChannelBroadCast: body["type"] = "broadcast"; break;
case TPChannelCreateType.TPChannelSuperBroadCast: body["type"] = "super_broadcast"; break;
case TPChannelCreateType.TPChannelUnknown: body["type"] = ""; break;
}
if(params.channelId != null) {
body["channelId"] = params.channelId;
if(params.reuseChannel != null) {
body["reuseChannel"] = params.reuseChannel;
}
}
if(params.targetIds?.isNotEmpty ?? false) { body["members"] = params.targetIds; }
if(params.hideMessagesBeforeJoin != null) { body["hideMessagesBeforeJoin"] = params.hideMessagesBeforeJoin; }
if(params.maxMemberCount != null) { body["maxMemberCount"] = params.maxMemberCount; }
if(params.channelName != null) { body["name"] = params.channelName; }
if(params.invitationCode != null) { body["invitationCode"] = params.invitationCode; }
if(params.category != null) { body["category"] = params.category; }
if(params.subCategory != null) { body["subcategory"] = params.subCategory; }
if(params.imageUrl != null) { body["imageUrl"] = params.imageUrl; }
if(params.metaData?.isNotEmpty ?? false) { body["data"] = params.metaData; }
try {
String url = "/channels/create";
Map<String, dynamic> response = await HttpUtil.postJson(url, body);
Map<String, dynamic> channel = response["channel"];
return TPChannel(channel);
} 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 null;
}