Skip to main content
Version: v4

Create a Group

Create a Group

In other words, as a logged-in user, how do I create a public, private or password-protected group?

You can create a group using createGroup() method. This method takes a Group object as a parameter that takes all the information related to the group. So, in order to create a group, you will have to create an object of the group and assign all the values to the group.

To create a group, you can use either of the below two initializers:

  1. new Group(String GUID, String name, String groupType, String password)
  2. new Group(String GUID, String name, String groupType, String password, String icon, String description)

The groupType needs to be either of the below 3 values:

1.CometChatConstants.GROUP_TYPE_PUBLIC (public) 2.CometChatConstants.GROUP_TYPE_PASSWORD (password) 3.CometChatConstants.GROUP_TYPE_PRIVATE (private)

1. let GroupTobeCreated = Group(GUID: String, name: String, groupType: CometChatConstants.groupType, password: String?)

2. let GroupTobeCreated = Group(GUID: String, name: String, groupType: CometChatConstants.groupType, password: String?, icon: String, description: String)
let guid = "SUPERGROUP1";
let groupName = "TestGroup1";
let password = ""; //mandatory in case of password protected group type

let group = Group(guid: guid, name: groupName, groupType: .private, password: password);

CometChat.createGroup(group: group, onSuccess: { (group) in

print("Group created successfully. " + group.stringValue())

}) { (error) in

print("Group creation failed with error:" + error!.errorDescription);
}

The createGroup() method takes the following parameters:

ParameterDescription
groupAn instance of Group class

After the successful creation of the group, you will receive an instance of `Group`` class which contains all the information about the particular group.

Warning

GUID can be alphanumeric with underscore and hyphen. Spaces, punctuation and other special characters are not allowed.

Add members while creating a group

You can create a group and add members at the same time using the createGroupWithMembers() method. This method takes the Group Object, Array of Group Member Object to be added & Array of UIDs to be banned.

To create an object of Group class, you can use either of the below two constructors:

  1. new Group(String GUID, String name, String groupType, String password)
  2. new Group(String GUID, String name, String groupType, String password, String icon, String description)

The groupType needs to be either of the below 3 values:

  1. CometChat.GROUP_TYPE.PUBLIC
  2. CometChat.GROUP_TYPE.PASSWORD
  3. CometChat.GROUP_TYPE.PRIVATE

To create an object of Group Member class, you can use the below constructor:

  • new CometChat.GroupMember(String UID, String scope)
let group = Group(guid: "superherogroup1" , name: "Hello Group", groupType: .public, password: nil)
let members = [GroupMember(UID: "superhero4", groupMemberScope: .participant)]
let banMembers = ["superhero2"]

CometChat.createGroupWithMembers(group: group, members: members, banMembers: banMembers, onSuccess: {
dict in
print("Group created successfully",dict)
}, onError: { (error) in
print("Some error occured while creating group \(String(describing: error?.errorDescription))")
}
)

Group Class

FieldEditableInformation
guidNeeds to be specified at group creation. Cannot be edited laterA unique identifier for a group
nameYesName of the group
typeNoType of the group: Can be
1. Public
2. Password
3. Private
passwordNoPassword for the group in case the group is of type password.
iconYesAn URL to group icon
descriptionYesDescription about the group
ownerYesUID of the owner of the group.
metadataYesAdditional data for the group as Dictionary
createdAtNoThe Unix timestamp of the time the group was created
updatedAtNoThe Unix timestamp of the time the group was last updated
hasJoinedNoA boolean to determine if the logged-in user is a member of the group.
joinedAtNoThe Unix timestamp of the time the logged-in user joined the group.
scopeYesScope of the logged in user. Can be:
1. Admin
2. Moderator
3. Participant
membersCountNoThe number of members in the groups
tagsYesA list of tags to identify specific groups.