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:
new Group(String GUID, String name, String groupType, String password)
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)
- Swift
- Objective C
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)
1. Group *GroupTobeCreated = [[Group alloc]initWithGuid:(NSString * _Nonnull) name:(NSString * _Nonnull) groupType:(enum groupType) password:(NSString * _Nullable)];
2. Group *GroupTobeCreated = [[Group alloc]initWithGuid:(NSString * _Nonnull) name:(NSString * _Nonnull) groupType:(enum groupType) password:(NSString * _Nullable) icon:(NSString * _Nonnull) description:(NSString * _Nonnull)];
- Swift
- Objective C
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);
}
NSString *guid = @"SUPERGROUP01";
NSString *name = @"TestGroup1";
NSString *password = nil ; // mandatory in case of password protected group type
Group *group = [[Group alloc]initWithGuid:guid name:name groupType:groupTypePublic password:password];
[CometChat createGroupWithGroup:group onSuccess:^(Group * group) {
NSLog(@"Group created successfully. %@",[group stringValue]);
} onError:^(CometChatException * error) {
NSLog(@"Group creation failed with error: %@",[error errorDescription]);
}];
The createGroup()
method takes the following parameters:
Parameter | Description |
---|---|
group | An 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.
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:
new Group(String GUID, String name, String groupType, String password)
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:
CometChat.GROUP_TYPE.PUBLIC
CometChat.GROUP_TYPE.PASSWORD
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)
- Swift
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
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 Dictionary |
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. |