-
Notifications
You must be signed in to change notification settings - Fork 0
Latest API Documentation
To get users list call getUsersList
function of CHService
class. You need to pass GetUserFilters
object of QueryBuilder
class. Assign variable to GetUserFilters
object according to your requirement. Not assigning any variable will return default result. Variables are:
Name | Type | Required | Description |
---|---|---|---|
isOnline | Bool | Optional | True to include only online user in result, false to Exclude online users. Default will include both in result |
limit | Int | Optional | Variable to set limit of number of results in one API Call |
skip | Int | Optional | Variable to set offset of Next API call like 0,30,60 |
searchQuery | String | Optional | String value to filter search. Use it when you are searching for users |
let getUserSearchQuery = QueryBuilder.instance.createUserListFilter()
getUserSearchQuery.searchQuery = query
getUserSearchQuery.limit = defaultLimit
getUserSearchQuery.skip = 0
CHService.main.getUsersList(queryFilter: getUserSearchQuery, completion: {(users,error) in
// Do your Stuff here
})
To get a user object with a particular id, call getUser
function of CHService
class. Parameters needed are userId
as id of the respective user. Completion handler will return a CHUser
object and an optional Error
object
CHService.main.getUser(userId:"20456",completion:{(user,error) in
// Do your Stuff here
})
To block a user with a particular id, call blockUser
function of CHService
class. Parameters needed are userId
as id of the respective user. Completion handler will return a Bool
value and an optional Error
object.
CHService.main.blockUser(userId:"20456",completion:{(status,error) in
// Do your Stuff here
})
To get blocked users list, call getBlockedUsers
function of CHService
class. Parameter required is GetBlockedUserFilters
of QueryBuilder
class. Assign variable to GetBlockedUserFilters
object according to your requirement. Not assigning any variable will return default result. Variables are:
- limit -> Variable to set limit of number of results in one API Call
- skip -> Variable to set offset of next api Call like 0,30,60
let blockedUsersQuery = QueryBuilder.instance.createBlockedUsersListFilter()
blockedUsersQuery.limit = 30
blockedUsersQuery.skip = 0
CHService.main.getBlockedUsers(queryFilter:blockedUsersQuery,completion:{(users,error) in
// Do your stuff here
})
To get Friends List, call getFriendsList
function of CHService
class. Parameter needed is GetFriendsFilters
object of QueryBuilder
class. Assign variables to GetFriendsFilters
object according to your needs. List of variables are
- isOnline -> True to include only online user in result, false to Exclude online users. Default will include both in result
- limit -> Variable to set limit of number of results in one API Call
- skip -> Variable to set offset of next api Call like 0,30,60
- includeBlocked ->
true
to include blocked user in result,false
to exclude. Not assigning will include all. - skipUserIds -> String containing comma separated members ids to be skipped in result. Useful when adding members to a group, you can skip ids of current members of group
- searchQuery -> String value to search friends on the basis of name.
- sort -> Sortign order. either
.DESC
or.ASC
let friendsFilter = QueryBuilder.createUserFriendsListFilter()
friendsFilter.online = true
friendsFilter.limit = 30
friendsFilter.skip = 0
friendsFilter.includeBlocked = true
friendsFilter.skipUserIds = "20456,20576,20789"
friendsFilter.searchQuery = "Leo"
friendsFilter.sort = .DESC
CHService.main.getFriendsList(queryFilter:friendsFilter,completion:{(users,error) in
// Do your Stuff Here
})
To get total friends cout, call getFriendsCount
function of CHService
class. Parameters needed are GetFriendsCountFilters
object of CHService
class. Assign variables to GetFriendsCountFilters
object according to your need. List of variables are
-
includeBlocked ->
true
to include blocked user in result,false
to exclude. Not assigning will include all. - isOnline -> True to include only online user in result, false to Exclude online users. Default will include both in result
- search -> String value to search friends on the basis of name.
let friendsCountFilter = QueryBuilder.instance.createUserFriendsCountFilter()
friendsCountFilter.online = false
friendsCountFilter.includeBlocked = true
friendsCountFilter.searchQuery = "James"
CHService.main.getFriendsCount(queryFilter:friendsCountQueryFilter,completion:{(count,error) in
// Do your stuff here
})
To unblock a user, call unblockUser
function of CHService
class. Parameter needed is userId
id of the respective user. Completion Handler will return Bool
value and optional Error
object
CHService.main.unblockUser(userId:"20456",completion:{(status,error) in
// Do your stuff here
})
let userCountsFilter = QueryBuilder.createUserFriendsCountFilter()
userCountsFilter.includeBlocked = true
userCountsFilter.online = true
userCountsFilter.searchQuery = "James"
CHService.main.getUserCounts(queryFilter:userCountsFilter,completion:{(count,error) in
// Do your stuff here
})
To get total blocked users count, call getBlockedUsersCount
function of CHService
class. Parameters needed are GetBlockedUserCountFilters
object of CHService
class. Assign variables to GetBlockedUserCountFilters
object according to your need. List of variables are
- isOnline -> True to include only online user in result, false to Exclude online users. Default will include both in result
- search -> String value to search friends on the basis of name.
let blockedUsersCount = QueryBuilder.instance.createUserFriendsCountFilter()
blockedUsersCount.isOnline = false
blockedUsersCount.search = "James"
CHService.main.getBlockedUsersCount(queryFilter:friendsCountFilter,completion:{(count,error) in
// Do your stuff here
})
To change a user visibility, call changeUserVisibility
function of CHService
class. Parameter needed is isVisible
as Bool
value. Completion handler will provide CHUser
object and optional Error
object.
let visibility = false
CHService.main.changeUserVisibility(isVisible: visibility, completion: {(user,error) in
// Do your stuff here
})
To turn on and off notifications, call changeNotificationSetting
function of CHService
class. Parameter needed is isNotificationOn
as Bool
value.Completion handler will provide CHUser
object if api call is successful and optional Error
object.
CHService.main.changeNotificationSetting(isNotificationOn: false, completion: {(user,error) in
// Do your stuff here
})
let textBody = "Hello, How are you?"
var params = [String:Any]()
params.updateValue(UUID().uuidString,forKey:"id")
params.updateValue(Channelize.currentUserId()!,forKey:"ownerId")
if currentConversation != nil{
params.updateValue(currentConversation.id!,forKey:"chatId")
} else{
params.updateValue(RECIPIENT_ID,forKey:"userId")
}
CHService.main.sendTextmessage(textMessage:textBody,messageParams:params,conversation:currentConversation,completion:{(message,error) in
// Do your Stuff here
})
CHService.main.sendFileMessage(messageParams: params, fileParams: params, thumbnailData: nil, fileData: audioData, messageType: .AUDIO, conversation: self?.chat, completion: {(message,error)
// Do your Stuff here
})
To send a location message, call sendLocationMessage
of CHService
class. Parameters required are
Name | Type | Required | Description |
---|---|---|---|
messageParams | [String:Any] | Yes | Message parameters id as unique id of message,ownerId as owner id, chatId as chat id if exist else recipient id |
locationParams | [String:Any] | Yes | Location parameters containing latitude ,longitude ,title ,address
|
conversation | CHConversation |
Optional | Conversation object in which you are sending message |
completion | (CHMessage?,Error?) | Yes | Completion Handler with optional message and Optional Error |
var params = [String:Any]()
params.updateValue(UUID().uuidString,forKey:"id")
params.updateValue(Channelize.currentUserId()!,forKey:"ownerId")
params.updateValue(conversation.id,forKey:"chatId")
var locationParams = [String:Any]()
locationParams.updateValue(53.2734,forKey:"latitude")
locationParams.updateValue(7.778,forKey:"longitude")
locationParams.updateValue("Madison Square Garden",forKey:"title")
locationParams.updateValue("4 Pennsylvania Plaza, New York, NY 10001, USA",forKey:"address")
CHService.main.sendLocationMessage(messageParams:params,locationParams:locationParams,conversation:conversation,completion: {(message,error) in
// Do your Stuff here
})
To send a GIFs and Sticker messages, call sendGIFStickerMessage
of CHService
class. Parameters required are
Name | Type | Required | Description |
---|---|---|---|
messageParams | [String:Any] | Yes | Message parameters id as unique id of message,ownerId as owner id, chatId as chat id if exist else recipient id |
gifStickerParams | [String:Any] | Yes | GIF parameters containing originalUrl ,stillUrl ,downsampledUrl provided by GIPHY sdk |
conversation | CHConversation |
Optional | Conversation object in which you are sending message |
completion | (CHMessage?,Error?) | Yes | Completion Handler with optional message and Optional Error |
var params = [String:Any]()
params.updateValue(UUID().uuidString,forKey:"id")
params.updateValue(Channelize.currentUserId()!,forKey:"ownerId")
params.updateValue(conversation.id,forKey:"chatId")
var gifStickParams = [String:Any]()
gifStickParams.updateValue("https://media1.giphy.com/media/Zantw7qPmMaZZJBrzc/200.gif",forKey:"originalUrl")
gifStickParams.updateValue("https://media1.giphy.com/media/Zantw7qPmMaZZJBrzc/200_s.gif",forKey:"stillUrl")
gifStickParams.updateValue("https://media1.giphy.com/media/Zantw7qPmMaZZJBrzc/200_d.gif",forKey:"downsampledUrl")
CHService.main.sendGIFStickerMessage(messageParams: params, gifStickerParams: gifStickParams,messageType: .GIF conversation: conversation, completion: {(message,error) in
// Do your Stuff here
})
To send a quoted messages, call sendQuotedMessage
of CHService
class. Parameters required are
Name | Type | Required | Description |
---|---|---|---|
messageParams | [String:Any] | Yes | Message parameters id as unique id of message,ownerId as owner id, chatId as chat id if exist else recipient id |
messageText | String | Yes | Text string for quoted message |
quotedMessage | CHMessage | Yes | Message object which you want to quote |
conversation | CHConversation |
Optional | Conversation object in which you are sending message |
completion | (CHMessage?,Error?) | Yes | Completion Handler with optional message and Optional Error |
// quotedMessage is the message which you want to quote
let messageText = "Hello, this is a quoted message"
var params = [String:Any]()
params.updateValue(UUID().uuidString,forKey:"id")
params.updateValue(Channelize.currentUserId()!,forKey:"ownerId")
params.updateValue(conversation.id,forKey:"chatId")
let qMessage = self.conversation.messageWithId("d37175a3-1926-45f9-a302-3b5b238850ff")
CHService.main.sendQuotedMessage(messageParams:params,messageText:messageText,quotedMessage:qMessage,conversation:conversation,completion:{(message,error) in
})
let messageCountQuery = QueryBuilder.createConversationMessageCountFilter()
messageCountQuery.attachmentType = "image,video,text,location,gif,sticker,audio"
messageCountQuery.contentType = 0 // Possible Values 0,1,2,3
messageCountQuery.ownerId = 20456
CHService.main.addGroupAdmin(chatId:"2004589",userId:"55",completion:{(status,error) in
if status{
"Do your Stuff Here"
} else {
"Operation Failed"
}
})
let getMessageQuery = QueryBuilder.instance.createConversationMessageFilter()
getMessageQuery.limit = 30
getMessageQuery.skip = 0
getMessageQuery.attachmentType = "image,audio,video"
getMessageQuery.contentType = 0
getMessageQuery.sort = .DESC
CHService.main.getMessages(queryFilter: getMessageQuery, chatId: self.chatId!, completion: {(messages,error) in
guard error == nil else {
print("Error in Getting Messages")
return
}
"Do your stuff with Messages"
})
To delete messages, call deleteMessages
function of CHService
class. Parameters needed are messageIds
as string array of message ids
///
/// - parameter messageIds: Array of Message Ids
/// - parameter completion: Completion Handler with Status as Bool and optional Error
///
/// ## Usage:
let messageIds = ["d37175a3-1926-45f9-a302-3b5b238850ff","d37175a3-1926-45f9-a302-3b5b23885012"]
CHService.main.deleteMessages(messageIds: messageIds, completion: {(status,error) in
if status{
print("Messages Deleted")
} else{
print("Failed")
}
})
To forward call forwardMessages
function of CHService
class.
You can Forward Multiple Message to multiple users and Groups. Pass userIds
as an array of String containing userIds, groupsIds
as an array of String containing groups ids and messageIds
as an array of String containing message ids to be forwarded
///
/// You can Forward Multiple Message to multiple users and Groups. Pass `userIds` as an array of String containing userIds, `groupsIds` as an array of String containing groups ids and `messageIds` as an array of String containing message ids to be forwarded
///
/// - parameter userIds: array of String containing userIds
/// - parameter groupIds: array of String containing groups ids
/// - parameter messagesIds: array of String containing message ids
/// - parameter completion: Completion handler with a Bool value for API call status and Optional Error
///
/// ## Usage
let userIds = ["20465","20573","20984"]
let groupIds = ["30465","30573","30984"]
let messageIds = ["d37175a3-1926-45f9-a302-3b5b238850ff","d37175a3-7890-45f9-a302-3b5b23885192"]
CHService.main.forwardMessages(userIds: userIds, groupIds: groupIds, messagesIds: messageIds, completion: {(status,error) in
if status{
print("Message Forwared")
} else{
print("Failed")
}
})
To get total unread message count, call getUnreadMessageCounts
function of CHService
class. Completion handler will provide count of unread message and optional error.
CHService.main.getUnreadMessageCounts(completion: {(count,error) in
guard error == nil else{
print("Error")
return
}
})
To mark a message as read, call markMessageAsRead
function of CHService
class. Parameters needed are messageId
as id of the respective message. Completion handler will provide a Bool
value as status of API call and an optional error.
///
/// - parameter messageId: Id of the message to be mark as Read
/// - parameter completion: Completion handler with a Bool value for API call status and Optional Error
///
/// ## Usage
let id = "d37175a3-1926-45f9-a302-3b5b238850ff"
CHService.main.markMessageAsRead(messageId:id,completion: {(status,error) in
if status{
print("Message Forwared")
} else{
print("Failed")
}
})
let conversationQuery = QueryBuilder.instance.createConversationListFilter()
conversationQuery.inclued = "membersList"
conversationQuery.limit = defaultLimit
conversationQuery.offset = offset
CHService.main.getChats(queryFilter: conversationQuery, completion: {(conversations,error) in
// Do your Stuff Here
})
To leave a group conversation call addGroupAdmin
method of CHService
class. This call should be made only from an admin of the group. Parameters needed are:
Name | Type | Required | Description |
---|---|---|---|
chatId | String | Yes | Respective Group conversation Id |
userId | String | Yes | User id of the user |
completion | (Bool,Error?) | Yes | Completion Handler with Bool value and an optional error object |
/// ## Usage:
CHService.main.addGroupAdmin(chatId:"2004589",userId:"55",completion:{(status,error) in
if status{
"Do your Stuff Here"
} else {
"Operation Failed"
}
})
To remove members from a group conversation call removeGroupMember
method of CHService
class. This call should be made only from an admin of the group. Parameters needed are:
Name | Type | Required | Description |
---|---|---|---|
chatId | String | Yes | Respective Group conversation Id |
userId | String | Yes | User id of the user |
completion | (Bool,Error?) | Yes | Completion Handler with Bool value and an optional error object |
/// ## Usage:
CHService.main.removeGroupMember(chatId:"2004589",userId:"55",completion:{(status,error) in
if status{
"Do your Stuff Here"
} else {
"Operation Failed"
}
})
To leave a group conversation call leaveConversation
method of CHService
class. Parameters needed are:
Name | Type | Required | Description |
---|---|---|---|
chatId | String | Yes | Respective Group conversation Id |
completion | (Bool,Error?) | Yes | Completion Handler with Bool value and an optional error object |
/// ## Usage:
CHService.main.leaveConversation(chatId:"2004589",completion:{(status,error) in
if status{
"Do your Stuff Here"
} else {
"Operation Failed"
}
})
To clear a conversation call clearConversation
method of CHService
class. It will only clear all Messages. It will not delete the Conversation. Parameters needed are
Name | Type | Required | Description |
---|---|---|---|
chatId | String | Yes | Respective Group conversation Id |
completion | (Bool,Error?) | Yes | Completion Handler with Bool value and an optional error object |
/// ## Usage:
CHService.main.clearConversation(chatId:"2004589",completion:{(status,error) in
if status{
"Do your Stuff Here"
} else {
"Operation Failed"
}
})
To delete a conversation call deleteConversation
method of CHService
class. Parameters needed are:
Name | Type | Required | Description |
---|---|---|---|
chatId | String | Yes | Respective Group conversation Id |
completion | (Bool,Error?) | Yes | Completion Handler with Bool value and an optional error object |
/// ## Notes:
/// It will Delete all Messages and conversation
/// ## Usage:
CHService.main.deleteConversation(chatId:"2004589",completion:{(status,error) in
if status{
"Do your Stuff Here"
} else {
"Operation Failed"
}
})
To add members to a coversation, call addMembersToConversation
function of CHService
class. This method should be called from an admin of the group. Parameters needed are:
Name | Type | Required | Description |
---|---|---|---|
chatId | String | Yes | Respective Group conversation Id |
userIds | [String] | Yes | Array containing user ids |
completion | (Bool,Error?) | Yes | Completion Handler with Bool value and an optional error object |
/// ## Usage:
let chatId = "2004859"
let usersIds = ["20456","20152"]
CHService.main.addMembersToConversation(chatId:chatId,userIds:usersIds,completion:{(status,error) in
if status{
"Do your Stuff Here"
} else {
"Operation Failed"
}
})
To mark all messages read of a conversation, call markAllMessageAsRead
function of CHService
class. Parameters needed are:
Name | Type | Required | Description |
---|---|---|---|
chatId | String | Yes | Respective Group conversation Id |
completion | (Bool,Error?) | Yes | Completion Handler with Bool value and an optional error object |
/// ## Usage:
CHService.main.markAllMessageAsRead(chatId:"2004589",completion:{(status,error) in
if status{
"Do your Stuff Here"
} else {
"Operation Failed"
}
})
To get members of a conversation, call getConversationMembers
function of CHService
class. Parameters needed are:
Name | Type | Required | Description |
---|---|---|---|
chatId | String | Yes | Respective Group conversation Id |
completion | ([CHUsers]?,Error?) | Yes | Completion Handler with array of CHUser object and an optional error object |
/// ## Usage:
CHService.main.getConversationMembers(chatId:"2004589",completion:{(users,error) in
guard error == nil else {
print("Error occured")
return
}
"Do your Stuff with Users List"
})
To update title of a group call updateConversationTitle
function of CHService
class. Parameters needed are:
Name | Type | Required | Description |
---|---|---|---|
title | String | Yes | New title of the group |
chatId | String | Yes | Respective Group conversation Id |
completion | (Bool?,Error?) | Yes | Completion Handler with Bool value and an optional error object |
/// ## Usage:
CHService.main.updateConversationTitle(title:"New Title",chatId:"205578344",completion:{(status,error) in
if status{
"Do your Stuff Here"
} else {
"Operation Failed"
}
})
To mute or unmute a conversation call muteUnmuteConversation
function of CHService
class. Parameters needed are:
Name | Type | Required | Description |
---|---|---|---|
chatId | String | Yes | Respective Conversation Id |
isMuted | Bool | Yes | True to mute conversation, false to unmute a conversation |
completion | (Bool?,Error?) | Yes | Completion Handler with Bool value and an optional error object |
/// ## Usage:
CHService.main.muteUnmuteConversation(chatId:"2004589",isMuted:true,completion:{(status,error) in
if status{
"Do your Stuff Here"
} else {
"Operation Failed"
}
})
Get a conversation Object with a conversation Id. Parameters needed are:
Name | Type | Required | Description |
---|---|---|---|
chatId | String | Yes | Respective Conversation Id |
completion | (CHConversation?,Error?) | Yes | Completion Handler with optional CHConversation object and an optional error object |
/// ## Usage:
CHService.main.getConversationWithId(chatId:"20456",completion:{(conversation,error) in
guard error == nil else{
print("Error in Getting Conversation")
return
}
"Do your Stuff Here with Conversation object"
})
Get a conversation Object related to a user. Important use when you are creating a one-to-one chat with a new user. Parameters needed are :
Name | Type | Required | Description |
---|---|---|---|
recipientId | String | Yes | Respective User Id |
completion | (CHConversation?,Error?) | Yes | Completion Handler with optional CHConversation object and an optional error object |
/// ## Usage:
CHService.main.getConversationWithRecipientId(recipientId:"20456",completion:{(conversation,error) in
guard error == nil else{
print("Error in Getting Conversation")
return
}
"Do your Stuff Here with Conversation object"
})
To create a new Group Conversation call CHService
class createGroup
function. Parameters needed to create a group are groupTitle
,profileImageData
if want to create group with a profile photo, memberIds
as a String Array containing members ids. Completion handler will provide a CHConversation
object if group created successfully, else it will return error.
Name | Type | Required | Description |
---|---|---|---|
groupTitle | String | Yes | Title of the new group |
profileImageData | Data | Optional | Group Profile Image Data |
memberIds | [String] | Yes | Array containing members ids |
completion | (CHConversation?,Error?) | Yes | Completion Handler with optional group conversation object and an optional error object |
/// ## Usage:
CHService.main.createGroup(groupTitle:"New Group 51",profileImageData:imageData,memberIds:["20456","20657"],completion:{(conversation,error) in
guard error == nil else {
print("Error in Creating New Group")
return
}
"Do you stuff with conversation Object"
})
To update a group Profile Photo call updateGroupProfilePhoto
function of CHService
class. Parameters needed are profileImageData
and groupId
as Group Conversation id.
Name | Type | Required | Description |
---|---|---|---|
profileImageData | Data | Optional | Group Profile Image Data |
groupId | String | Yes | Conversation of respective group |
completion | (Bool,Error?) | Yes | Completion Handler with Bool value and an optional error object |
/// ## Usage:
CHService.main.updateGroupProfilePhoto(profileImageData:imageData,groupId:"20000545938",completion:{(status,error) in
if status{
"Do your Stuff Here"
} else {
"Operation Failed"
}
})