Chat

public class Chat

Represents a chat

  • Define wether a chat is a group or not

    Declaration

    Swift

    public enum ChatType

Delegate

Properties

  • Expose chat type (1-1 or group)

    Declaration

    Swift

    public var type: ChatType { get }
  • Chat identifier (remote user for 1-1 and UUID for group chats)

    Declaration

    Swift

    public var identifier: String { get }
  • Group actions for group chats like invite a participant or expel one

    Declaration

    Swift

    public private(set) var groupChatActions: GroupChatActions? { get }
  • Last message received

    Declaration

    Swift

    public fileprivate(set) var lastMessage: ChatMessage? { get set }
  • Number of unread messages, should be updated calling Chat.fetchUnreadMessagesCount()

    Declaration

    Swift

    public fileprivate(set) var unreadMessagesCount: Int { get set }

Api

  • Leaves the chat

    Declaration

    Swift

    public func leave(completion: @escaping () -> Void)
  • Sends a new message to other participant

    Declaration

    Swift

    public func send(message: String) -> ChatMessage

    Parameters

    message

    Body message to be sent

    Return Value

    A Message

  • Send participant action, like typing or active, to remote participant

    Declaration

    Swift

    public func sendParticipantActionInChat(_ action: ChatMessage.ParticipantAction)

    Parameters

    action

    Current participant action

  • Send a file to Chat

    Declaration

    Swift

    public func send(file: Data, named filename: String, pathToLocalFile: String?) -> ChatMessage

    Parameters

    file

    Data to send

    filename

    Name use to share it

    Return Value

    A Message where upload progress is received

  • Mark a message with a new status

    Declaration

    Swift

    public func mark(message: ChatMessage, as status: ChatMessage.Status)

    Parameters

    message

    Message to change status

    status

    New status

  • Fetch history related to this user, messages are received in delegate

    Declaration

    Swift

    public func fetchMessagesFromStore(messageSearch: ChatMessageSearch,
                                       completion: @escaping (ChatMessageSearchResult) -> ())

    Parameters

    messageSearch

    search criteria

    completion

    completion block with ChatMessageSearchResult

  • Send a mark with last message read

    Declaration

    Swift

    public func markChatAsRead()