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 input.
The groupType needs to be either of the below 3 values:
1.CometChatGroupType.public (public)
2.CometChatGroupType.password (password)
3.CometChatGroupType.private (private)
String GUID = "GUID";
  String groupName = "Hello Group!";
  String groupType = CometChatGroupType.public;
  String password = "";
  Group _group = Group(guid: GUID, name: groupName, type: groupType);
  await CometChat.createGroup(group: _group, onSuccess: (Group group ){
    debugPrint("Group Created Successfully : $group ");
  }, onError:(CometChatException e) {
    debugPrint("Group Creation failed with exception: ${e.message}");
  } );
createGroup() method takes the following parameters:
| Parameter | Description | 
|---|
| group | An instance of Groupclass | 
Group class which contains all the information about the particular group.
GUID can be alphanumeric with underscore and hyphen. Spaces, punctuation and other special characters are not allowed.
Group Class
| Field | Editable | Information | 
|---|
| guid | Needs to be specified at group creation. Cannot be edited later | A unique identifier for a group | 
| name | Yes | Name of the group | 
| type | No | Type of the group: Can be 1. Public 2. Password 3. Private | 
| password | No | Password for the group in case the group is of type password. | 
| icon | Yes | An URL to group icon | 
| description | Yes | Description about the group | 
| owner | Yes | UID of the owner of the group. | 
| metadata | Yes | Additional data for the group as JSON | 
| createdAt | No | The unix timestamp of the time the group was created | 
| updatedAt | No | The unix timestamp of the time the group was last updated | 
| hasJoined | No | A boolean to determine if the logged in user is a member of the group. | 
| joinedAt | No | The unix timestamp of the time the logged in user joined the group. | 
| scope | Yes | Scope of the logged in user. Can be: 1. Admin 2. Moderator 3. Participant | 
| membersCount | No | The number of members in the groups | 
| tags | Yes | A list of tags to identify specific groups. |