# Broadcast

# Comment

Comments are broadcast on channel submission.{submission-slug}

# Listener

There are three event listeners:

CommentWasCreated, CommentWasPatched and CommentWasDeleted

# Usage

This is for js:

Echo.channel('submission.'+submissionSlug)
    .listen("CommentWasCreated", event => {
        console.log("Comment created:", event.data);
    })
    .listen("CommentWasPatched", event => {
        console.log("Comment updated:", event.data);
    })
    .listen("CommentWasDeleted", event => {
        console.log("Comment deleted:", event.data);
    });

# Example

All three will return:

{
    "data": 
    {
        "id": 1,
        "submission_id": 1,
        "user_id": 1,
        "channel_id": 1,
        "type": "serious",
        "parent_id": null,
        "nested_level": 0,
        "rate": 0,
        "likes_count": 0,
        "votes": 0,
        "content": {
            "text": "contentOfComment"
            },
        "approved_at": "dateOfApproval",
        "disapproved_at": "dateOfDisapproval",
        "created_at": "dateCreated",
        "deleted_at": "dateDeleted",
        "deleted_by": null,
        "deletedAdmin": false,
        "reason_remove": null,
        "edited_at": null,
        "author": "userName",
        "children": false,
        "commentVotes": 0,
    }
}

# Conversation

Conversation are broadcast on private channel App.User.{UserId}

# Listener

There are three event listeners:

ConversationRead, MessageCreated and MessageRead

# Usage

This is for js:

 Echo.private('App.User.' + userId)
    .listen("MessageCreated", event => {
        console.log("New message:", event.data);
    })
    .listen("MessageRead", event => {
        console.log("Message read:", event.data);
    })
    .listen("ConversationRead", event => {
        console.log("Conversation read:", event.data);
    });

# Example

Conversation read returns:

{
    "data": 
    {
        "user_id": "CurentUserContactId",
    }
}

Message Created and Read returns:

{
    "data": 
    {
        "id": "messageId",
        "user_id": 1,
        "created_at": "dateCreated",
        "read_at": "messageReadTimestamp",
        "content": "messageContent",
        "author": {
            "id": 1,
            "username": "userName",
            "name": "fullName",
            "bio": "userBio",
            ...
        }
    }
}