No project description provided
Project description
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 тикета
}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chatlabs_django_support-1.0.3.tar.gz.
File metadata
- Download URL: chatlabs_django_support-1.0.3.tar.gz
- Upload date:
- Size: 13.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.0.1 CPython/3.13.1 Linux/6.8.0-1020-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
680c0fc67c3d417858a58e9e80393b6b0b5fffc909c5aa255697fc404ef71d2b
|
|
| MD5 |
dbfa3b0384ec5d1964911bbe55afa55a
|
|
| BLAKE2b-256 |
db407b3c6611dfc4fe21701a46cc0363b444cd0abf1ca8826d522352663de73d
|
File details
Details for the file chatlabs_django_support-1.0.3-py3-none-any.whl.
File metadata
- Download URL: chatlabs_django_support-1.0.3-py3-none-any.whl
- Upload date:
- Size: 22.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.0.1 CPython/3.13.1 Linux/6.8.0-1020-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77c57ca0a13a9716e9e2ccdfa19213c0d4473f2827290b28c974a5d689225def
|
|
| MD5 |
17e42582b2037cf0c8be2c01dd84f755
|
|
| BLAKE2b-256 |
c7786f578c722374ebff1cf1be512e325b21c53baa33612961cdb7bfe17ab9b3
|