Corp/backend/notifications/api_urls.py
Игорь Надеин 788a245cc9 feat: implement Web Push notifications for offline browser notifications
- Add WebPushSubscription model for storing push subscriptions
- Generate VAPID keys for Web Push authentication
- Add API endpoints for push subscribe/unsubscribe
- Create Service Worker (sw.js) for handling push events
- Create JavaScript module for managing push subscriptions
- Integrate send_web_push_notification into NotificationService
- Add Service Worker registration to base.html
- Update requirements.txt with pywebpush package
2026-01-05 14:10:42 +03:00

73 lines
2.0 KiB
Python

from django.urls import path
from . import api_views
app_name = 'notifications_api'
urlpatterns = [
path('notifications/', api_views.get_notifications, name='list'),
path('notifications/count/', api_views.get_unread_count, name='count'),
path(
'notifications/<int:notification_id>/read/',
api_views.mark_as_read,
name='mark_read'
),
path(
'notifications/read-all/',
api_views.mark_all_as_read,
name='mark_all_read'
),
path(
'notifications/<int:notification_id>/',
api_views.delete_notification,
name='delete'
),
path('notifications/categories/', api_views.get_categories, name='categories'),
path('notifications/settings/', api_views.get_user_settings, name='settings_get'),
path(
'notifications/settings/update/',
api_views.update_user_settings,
name='settings_update'
),
path(
'notifications/settings/category/update/',
api_views.update_category_settings,
name='category_settings_update'
),
# Telegram integration
path(
'notifications/telegram/status/',
api_views.get_telegram_link_status,
name='telegram_status'
),
path(
'notifications/telegram/generate-code/',
api_views.generate_telegram_link_code,
name='telegram_generate_code'
),
path(
'notifications/telegram/unlink/',
api_views.unlink_telegram,
name='telegram_unlink'
),
# Web Push integration
path(
'notifications/push/vapid-key/',
api_views.get_vapid_public_key,
name='push_vapid_key'
),
path(
'notifications/push/subscribe/',
api_views.subscribe_push,
name='push_subscribe'
),
path(
'notifications/push/unsubscribe/',
api_views.unsubscribe_push,
name='push_unsubscribe'
),
path(
'notifications/push/subscriptions/',
api_views.get_push_subscriptions,
name='push_subscriptions'
),
]