Retrieve Groups

Learn how to retrieve groups.

Retrieve List of Groups

In other words, as a logged-in user, how do I retrieve the list of groups I've joined and groups that are available?

In order to fetch the list of groups, you can use the GroupsRequest class. To use this class i.e to create an object of the GroupsRequest class, you need to use the GroupsRequestBuilder class. The GroupsRequestBuilder class allows you to set the parameters based on which the groups are to be fetched.

The GroupsRequestBuilder class allows you to set the below parameters:

  1. set(limit: Int) - This method sets the limit i.e. the number of groups that should be fetched in a single iteration.
let groupsRequest  = GroupsRequest.GroupsRequestBuilder.set(limit: 30).build();

  1. set(searchKeyword: String) - This method allows you to set the search string based on which the groups are to be fetched.
let groupsRequest  = GroupsRequest.GroupsRequestBuilder
.set(searchKeyword : "abc")
.set(limit: 30)
.build();

  1. set(joined only: Bool#) - This method when used, will ask the SDK to only return the groups that the user has joined or is a part of.
let groupsRequest  = GroupsRequest.GroupsRequestBuilder
.set(joinedOnly: true)
.build();

  1. set(Tags : [String]) - This method accepts a list of tags based on which the list of groups is to be fetched. The list fetched will only contain the groups that have been tagged with the specified tags.
let groupRequest = GroupsRequest.GroupsRequestBuilder()
.set(limit: 30)
.set(tags: ["tag1", "tag2"])
.build();
  1. withTags(Bool#) - This property when set to true will fetch tags data along with the list of groups.
let groupRequest = GroupsRequest.GroupsRequestBuilder()
.set(limit: 30)
.withTags(true)
.build();

Finally, once all the parameters are set to the builder class, you need to call the build() method to get the object of the GroupsRequest class.

Once you have the object of the GroupsRequest class, you need to call the fetchNext() method. Calling this method will return a list of Group objects containing n number of groups where n is the limit set in the builder class.

The list of groups fetched will only have the public and password type groups. The private groups will only be available if the user is a member of the group.

let limit = 30 

let groupsRequest  = GroupsRequest.GroupsRequestBuilder(limit: limit).build();

groupsRequest.fetchNext(onSuccess: { (groups) in

  for group in groups {

    print("Groups list fetched successfully. " + group.stringValue())
  }

}) { (error) in

    print("Groups list fetching failed with error:" + error!.errorDescription);
}
NSInteger limit = 30 ;

GroupsRequest *groupRequest  = [[[GroupsRequestBuilder alloc]initWithLimit:limit] build];

[groupRequest fetchNextOnSuccess:^(NSArray<Group *> * groups) {
    
    for (Group *group in groups) {
        NSLog(@"Groups list fetched successfully. %@",[group stringValue]);
    }
  
} onError:^(CometChatException * error) {
    
    NSLog(@"Groups list fetching failed with error: %@",[error errorDescription]);
}];

Retrieve Particular Group Details

In other words, as a logged-in user, how do I retrieve information for a specific group?

To get the information of a group, you can use the getGroup() method.

let guid = "SUPERGROUP1"

CometChat.getGroup(GUID: guid, onSuccess: { (group) in

    print("Group details fetched successfully. " + group!.stringValue())

}) { (error) in

    print("Group details fetching failed with error:" + error!.errorDescription);
}
NSString *guid = @"SUPERGROUP01";

[CometChat getGroupWithGUID:guid onSuccess:^(Group * group) {
    
    NSLog(@"Group details fetched successfully. %@",[group stringValue]);
    
} onError:^(CometChatException * error) {
    
    NSLog(@"Group details fetching failed with error: %@",[error errorDescription]);
}];

Parameter

Description

GUID

The GUID of the group for whom the details are to be fetched.

On success, the Group object containing the details of the group is returned.

Get online group member count

To get the total count of online users in particular groups, you can use the getOnlineGroupMemberCount() method.

let data = ["supergroup","supergroup1"]
CometChat.getOnlineGroupMemberCount(data, onSuccess: {
    countData in
  print(countData)
}, onError: {
  error in
  print(error?.errorDescription)
 })

This method returns a Dictionary<String, Int> with the GUID as the key and the online member count for that group as the value.


Did this page help you?