khonik/chats

快速创建聊天

1.0.8 2022-12-24 15:33 UTC

This package is not auto-updated.

Last update: 2024-09-29 00:27:03 UTC


README

安装

1. 安装包

composer require khonik/chats

2. 在 config/app.php 的 providers 数组中添加

Khonik\Chats\Providers\ChatsServiceProvider::class

3. 发布迁移

php artisan vendor:publish --provider="Khonik\Chats\Providers\ChatsServiceProvider"

4. 执行迁移

php artisan migrate

5. 在 User 模型中添加 trait

use Chatable

使用

打开与用户的聊天

方法: GET

URL: /api/chats/find-by-user

请求体

{"user_id":2} 

响应

{
    "status": "success",
    "chat": {
        "updated_at": "2022-01-13T12:17:16.000000Z",
        "created_at": "2022-01-13T12:17:16.000000Z",
        "id": 2
    }
}

我的聊天列表

方法: GET

URL: /api/chats

响应

{
    "status": "success",
    "chats": [
        {
            "id": 2,
            "created_at": "2022-01-13T12:17:16.000000Z",
            "updated_at": "2022-01-13T12:17:16.000000Z",
            "new_messages_count": 0,
            "pivot": {
                "user_id": 1,
                "chat_id": 2,
                "last_opened_at": null
            },
            "target_user": {
                "id": 2,
                "name": "Ira",
                "username": "IrSink",
                "avatar": "https:///storage/1641842698-cnr.png",
                "lat": 55.777216,
                "lon": 37.52706,
                "status": "online",
                "laravel_through_key": 2
            },
            "last_message": null
        }
    ],
    "total": 3
}

新消息数量

方法: GET

URL: /api/chats/new-message-count

响应

{
    "status": "success",
    "chats": [
        {
            "id": 2,
            "created_at": "2022-01-13T12:17:16.000000Z",
            "updated_at": "2022-01-13T12:17:16.000000Z",
            "new_messages_count": 0,
            "pivot": {
                "user_id": 1,
                "chat_id": 2,
                "last_opened_at": null
            },
            "target_user": {
                "id": 2,
                "name": "Ira",
                "username": "IrSink",
                "avatar": "https:///storage/1641842698-cnr.png",
                "lat": 55.777216,
                "lon": 37.52706,
                "status": "online",
                "laravel_through_key": 2
            },
            "last_message": null
        }
    ],
    "total": 3
}

聊天中的消息列表

方法: GET

URL: /api/chats/{CHAT_ID}/messages

响应

{
    "status": "success",
    "messages": [
        {
            "id": 1,
            "chat_id": 2,
            "user_id": 2,
            "type": "text",
            "body": "Чего молчим?(",
            "created_at": "2022-01-13T12:18:32.000000Z",
            "updated_at": "2022-01-13T12:18:32.000000Z",
            "author": {
                "id": 2,
                "name": "Ira",
                "username": "IrSink",
                "avatar": "https:///storage/1641842698-cnr.png",
                "lat": 55.777216,
                "lon": 37.52706,
                "status": "online"
            }
        }
    ],
    "total": 1
}

向聊天发送消息

方法: POST

URL: /api/chats/{CHAT_ID}/messages

请求体

{
    "type":"text",
    "body":"Чего молчим?("
}

响应

{
    "status": "success",
    "message": {
        "chat_id": "2",
        "type": "text",
        "body": "Чего молчим?(",
        "user_id": 2,
        "updated_at": "2022-01-13T12:18:32.000000Z",
        "created_at": "2022-01-13T12:18:32.000000Z",
        "id": 1
    }
}

修改消息

方法: PUT

URL: /api/chats/{CHAT_ID}/messages/{MESSAGE_ID}

请求体

{
    "type":"text",
    "body":"Чего молчим?("
}

响应

{
    "status": "success",
    "message": {
        "chat_id": "2",
        "type": "text",
        "body": "Чего молчим?(",
        "user_id": 2,
        "updated_at": "2022-01-13T12:18:32.000000Z",
        "created_at": "2022-01-13T12:18:32.000000Z",
        "id": 1
    }
}

删除消息

方法: DELETE

URL: /api/chats/{CHAT_ID}/messages/{MESSAGE_ID}

响应

{
    "status": "success",
}