ChatLabs Django Support
Зависимости
- Python 3.11+
- Django 5.0.1
- Channels >=4.2.0,<5.0.0
- Daphne >=4.1.2,<5.0.0
- Django REST framework >=3.15.2,<4.0.0
- Django-filter >=24.3,<25.0
Установка
Установите пакет через pip:
pip install chatlabs-django-support
...или через Poetry:
poetry add chatlabs-django-support
Быстрый старт
-
Добавьте модель Telegram пользователя в любое ваше приложение:
# my_users/models.py class MyTelegramUser(models.Model): telegram_id = models.BigIntegerField( primary_key=True, unique=True, )
-
Добавьте
daphne,channels,supportи приложение с вашей моделью Telegram пользователя вINSTALLED_APPS:# settings.py INSTALLED_APPS = [ 'daphne', 'channels', ..., 'my_users', 'support', ]
-
Укажите модель Telegram пользователя в настройках:
# settings.py SUPPORT_TELEGRAM_USER_MODEL = 'my_users.MyTelegramUser'
-
Также необходимо настроить слои для
channels:# settings.py CHANNEL_LAYERS = { 'default': { 'BACKEND': 'channels.layers.InMemoryChannelLayer', }, }
-
Настройте ASGI-приложение:
# asgi.py import os from support import get_asgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'example.settings') application = get_asgi_application()
# settings.py ASGI_APPLICATION = 'example.asgi.application'
-
Обновите
urls.py:from django.urls import path, include urlpatterns = [ ... path('support/', include('support.urls')), ]
-
Создайте и выполните миграции:
python manage.py makemigrations
python manage.py migrate
API
GET "/support/tickets/"
Получить список тикетов
Query params:
user_id(number) - ID Пользователя (создателя тикета)resolved(bool) -true- тикет решен,false- тикет не решенmanager(number) - ID менеджера, на которого назначены тикетыmanager__isnull(bool) -true- менеджер не назначен,false- менеджер назначен
Response:
[
{
"id": 2,
"user": {
"telegram_id": 123
},
"support_manager": null,
"created_at": "2025-01-31T12:24:25.716425Z",
"title": "I've founded some bug",
"resolved": false
}
]
GET "/support/tickets/ticket_id/"
Получить тикет
Response:
{
"id": 1,
"user": {
"telegram_id": 123
},
"support_manager": {
"id": 1,
"first_name": "",
"last_name": ""
} || null,
"created_at": "2025-01-22T12:11:40.273325Z",
"title": "I've founded some bug",
"resolved": true
}
GET "/support/tickets/ticket_id/messages/"
Получить список сообщений в тикете
Response:
[
{
"id": 3,
"created_at": "2025-01-31T12:18:03.929086Z",
"sender": "user" || "supp",
"text": "some text of message",
"viewed": false,
"ticket": 1
}
]
WebSocket API - Отправляемые сообщения
Принять тикет в работу:
{
"type": "ticket.assign",
"ticket_id": 16 // ID тикета
}
Отправить сообщение:
{
"type": "ticket.message.new",
"ticket_id": 16, // ID тикета
"text": "The is some text" // текст сообщения
}
WebSocket API - Получаемые сообщения
Создан новый тикет:
{
"type": "ticket.created",
"ticket": {
"id": 21, // ID тикета
"user": { // Информация о пользователе
"telegram_id": 4 // telegram_id пользователя
},
"support_manager": null, // назначенный менеджер
"created_at": "2024-12-29T16:10:38.620768Z", // дата создания
"title": "have a prob" // заголовок тикета
}
}
Тикет назначен:
{
"type": "ticket.assigned",
"id": 16, // ID тикета
"support_manager": 1, // ID менеджера
}
Новое сообщение:
{
"type": "ticket.message.new",
"message": {
"id": 31, // ID сообщения
"created_at": "2024-12-29T16:08:04.267002Z", // дата создания
"sender": "supp", // отправитель, "user" - пользователь, "supp" - менеджер
"text": "some_text", // текст сообщения
"viewed": true, // сообщение просмотрено
"ticket": 16 // ID тикета
}
}
Metadata
Release files for chatlabs-django-support 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| chatlabs_django_support-1.2.0.tar.gz | 15.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| chatlabs_django_support-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.0 kB
Release files / chatlabs_django_support-1.2.0.tar.gz
| Download URL | chatlabs_django_support-1.2.0.tar.gz |
|---|---|
| Size | 15.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f6c2e4bd3372fa1e82d0d27d4b3b5f1b5e960a4e8ffb9395c48de127a7189ed1
|
|
BLAKE2b-256 checksum How to use checksums |
d1ffa514f87b1a9420378ef1bf144585e052777698cc0b4a190cb85bfbdc598e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.2.1 CPython/3.13.7 Linux/6.11.0-1018-azure
|
Release files / chatlabs_django_support-1.2.0-py3-none-any.whl
| Download URL | chatlabs_django_support-1.2.0-py3-none-any.whl |
|---|---|
| Size | 24.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a24a457cb70fa140d2e9ebd779aac9d873e9c0d7350e8190bd7d3519ad1b79c9
|
|
BLAKE2b-256 checksum How to use checksums |
6521dab1d56eb7ccc27c1aab0a23c0132661d556c1253b717588cc51cb0781b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.2.1 CPython/3.13.7 Linux/6.11.0-1018-azure
|