- 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
73 lines
2.0 KiB
Python
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'
|
|
),
|
|
] |